android 关于注册广播发送广播的问题

hen_hao_ji 2012-03-22 03:17:08

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();
}
}


这个代码是检测手机电量的,我这里好像只是注册了广播,但没发出,难道手机内电量这个广播不间断的在发的,只要注册了就可以接收到?
...全文
876 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
forlong401 2012-03-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hen_hao_ji 的回复:]

引用 1 楼 fengli3863 的回复:
首先你注册的是广播接收器。。。用来接受广播的
其次这些广播是由系统发出的,至于何时发你不用管

但为什么我想去得到电量有多少,不管什么时候都能得到?
[/Quote]

呵呵,楼主说话很好玩。哈哈。
我猜你是说:每次你点button1,总是能马上就收到Change的Intent。
这是电池变化的Intent,所以发的频率比较高。
毛豆先生Max 2012-03-22
  • 打赏
  • 举报
回复
呵呵,或许就像你说的系统在一直发Intent.ACTION_BATTERY_CHANGED这个广播
因为电量是一直在change的。。。
hen_hao_ji 2012-03-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fengli3863 的回复:]
首先你注册的是广播接收器。。。用来接受广播的
其次这些广播是由系统发出的,至于何时发你不用管
[/Quote]
但为什么我想去得到电量有多少,不管什么时候都能得到?
毛豆先生Max 2012-03-22
  • 打赏
  • 举报
回复
首先你注册的是广播接收器。。。用来接受广播的
其次这些广播是由系统发出的,至于何时发你不用管

80,493

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧