打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
[转]BroadcastReceiver的生命周期

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类的实例是每触发一次就新建一次的,而且和程序是在同一个进程同一线程内.

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Service关闭又自动启(AlarmManager、PendingIntent、BroadcastReceiver、Service)
Broadcast调用Service做的一个定时器 - 醋溜的 - JavaEye技术网站
android service 后台执行定时任务
android Broadcast
Android开机自启动服务的实现方法
AlarmManager闹钟管理的使用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服