private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver()
{
public void onReceive(Context context, Intent intent)
{
String action = intent.getAction();
if (Intent.ACTION_BATTERY_CHANGED.equals(action))
{
intLevel = intent.getIntExtra("level", 0);
intScale = intent.getIntExtra("scale", 100);
onBatteryInfoReceiver(intLevel,intScale);
}
}
};
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mButton01 = (Button)findViewById(R.id.myButton1);
mButton01.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v)
{
registerReceiver
(
mBatInfoReceiver,
new IntentFilter(Intent.ACTION_BATTERY_CHANGED)
);
}
});
}
public void onBatteryInfoReceiver(int intLevel, int intScale)
{
final Dialog d = new Dialog(ey06_02.this);
d.setTitle(R.string.str_dialog_title);
d.setContentView(R.layout.mydialog);
Window window = d.getWindow();
window.setFlags
(
WindowManager.LayoutParams.FLAG_BLUR_BEHIND,
WindowManager.LayoutParams.FLAG_BLUR_BEHIND
);
TextView mTextView02 = (TextView)d.findViewById(R.id.myTextView2);
mTextView02.setText
(
getResources().getText(R.string.str_dialog_body)+
String.valueOf(intLevel * 100 / intScale) + "%"
);
Button mButton02 = (Button)d.findViewById(R.id.myButton2);
mButton02.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v)
{
unregisterReceiver(mBatInfoReceiver);
d.dismiss();
}
});
d.show();
}
}
这个代码是检测手机电量的,我这里好像只是注册了广播,但没发出,难道手机内电量这个广播不间断的在发的,只要注册了就可以接收到?
因为电量是一直在change的
呵呵,楼主说话很好玩。哈哈。
我猜你是说:每次你点button1,总是能马上就收到Change的Intent。
这是电池变化的Intent,所以发的频率比较高。