最近在Android开发中遇到这样的问题,我的代码中动态注册一个BroadcastReceiver,发现开机过程中receiver注册的时间在BOOT COMPLETE广播发出之后,所以没有接收到这个广播,请问大家还有没有其他方式可以判断开机完成?

解决方案 »

  1. 不会的 Activity 是可以收到 android.intent.action.BOOT_COMPLETED 这个消息的 好多功能都是由这个消息引发的
      

  2. 没收到是因为broadcastreceiver的注册的时间(因为我是动态注册)晚于bootcomplete广播的发出时间,
    我今天找到一个办法确认
    在发送bootcomplete广播之前,会往systemproperties中添加sys.boot_complete的属性,根据各个属性,我即使没有收到广播也可以根据这个系统属性判断是否开机
      

  3. 要么就静态注册到manifest文件中。
      

  4. 还有就是可以接收ACTION_MEDIA_MOUNTED intent。不过这个不准确,当卸载sd卡再安装上后也会收到此intent。
      

类似问题 »