BroadcastReceiver的生命周期
来源:互联网 发布:linux rpm not find 编辑:程序博客网 时间:2024/05/15 12:35
BroadcastReceiver在android中是一特色功能.android系统的很多消息(如系统启动,新短信,来电话等)都通过BroadcastReceiver来分发.BroadcastReceiver的生命周期是短暂的,而且是消息一到达则创建执行完毕就立刻销毁的.为了说明这一点,我通过注册一个Alarm Service每7秒钟触发产生一次BroadcastReceive事件.
以下是BroadcastReceive的实现
- protected static final class AlarmReceiver extends BroadcastReceiver{
- public AlarmReceiver()
- {
- //查看类创建的进程id和线程id
- Log.i("AlarmReceiver.AlarmReceiver()", Calendar.getInstance().getTime().toLocaleString());
- Log.i("AlarmReceiver.AlarmReceiver() -> pid", String.valueOf(android.os.Process.myPid()));
- Log.i("AlarmReceiver.AlarmReceiver() -> tid", String.valueOf(android.os.Process.myTid()));
- }
- @Override
- public void onReceive(Context context, Intent intent) {
- // TODO Auto-generated method stub
- Log.i("AlarmReceiver.onReceive()", Calendar.getInstance().getTime().toLocaleString());
- }
- }
通过一个"Start"按钮和一个"Stop"按钮来控制消息.
- public void onClick(View arg0) {
- // TODO Auto-generated method stub
- switch(arg0.getId()){
- case R.id.btnStart:
- Log.i("current pid", String.valueOf(android.os.Process.myPid()));
- Log.i("current tid", String.valueOf(android.os.Process.myTid()));
- ((AlarmManager)this.getSystemService(Context.ALARM_SERVICE))
- .setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 7*1000,
- PendingIntent.getBroadcast(this, 0, new Intent(this,AlarmReceiver.class), 0)
- );
- break;
- case R.id.btnStop:
- ((AlarmManager)this.getSystemService(Context.ALARM_SERVICE))
- .cancel(PendingIntent.getBroadcast(this, 0, new Intent(this,AlarmReceiver.class), 0));
- break;
- }
- }
打开logCat选择I,运行清理掉所有日志点击"Start"按钮
从上图可以看到AlarmReceiver类的实例是每触发一次就新建一次的,而且和程序是在同一个进程同一线程内.
- BroadcastReceiver的生命周期
- BroadcastReceiver的生命周期
- BroadcastReceiver 的生命周期
- BroadcastReceiver生命周期的探究
- 【Android】BroadcastReceiver的生命周期
- android BroadcastReceiver 生命周期的问题
- BroadCastReceiver 生命周期
- Android BroadcastReceiver 的生命周期及实际应用
- Android BroadcastReceiver 的生命周期及实际应用
- BroadcastReceive——BroadcastReceiver的生命周期
- BroadcastReceiver生命周期探讨
- Android BroadcastReceiver生命周期分析
- Activity,Service,BroadcastReceiver生命周期
- BroadcastReceiver的生命周期——从程序的一个bug说起
- Android的Service与BroadcastReceiver之一 Service简介、创建、配置、启动、停止与其生命周期
- BroadcastReceiver的生命周期:保存在Receiver中的static变量为什么老为空
- android broadcastReceiver生命周期及两种应用
- 浅谈android Activity,service,broadcastReceiver生命周期
- VC中字符串和数字转换的函数(转)
- Power jQuery 1.4.2
- android学习笔记之十一数据存储(Shared Preferences、SQLite)
- android学习笔记之十二进程通信(IPC)
- 什么是EJB,EJB技术概览
- BroadcastReceiver的生命周期
- 《高效程序的奥秘》第二章读书笔记(二)
- 电子工业出版社计算机图书出版分社致作者函
- 定制android通知(Notification)
- If You Forget Me 如果你忘了我
- GSOAP使用-转载
- AS学习网址大全
- FAQ10:函数调用和返回时,堆栈是怎么变化的?
- smali反编译dex