首先我们想说下为什么要用广播 ??
答案 是当用户 用进程杀手 杀到百科专家的进程 这样系统中的中的服务 同时也杀掉了 起初 我是这么想的 在 service destroy 时 在重新启动service 但是尝试了 下 在杀手进程时 没有打印log ,,说明 此方法 不可用
说说百科专家中用的方法
此方法用到了广播 首先在androidmanifest.Xml中
<receiver android:name=".pushNotice.BootReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
监听开机启动执行BootReceiver 中的代码 启动推送服务
还动态定义了屏幕关闭和屏幕 开启 的广播
// 生成广播处理
BootReceiver screenStatReceiver = new BootReceiver();
// 实例化过滤器并设置要过滤的广播
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_SCREEN_ON);
intentFilter.addAction(Intent.ACTION_SCREEN_OFF);
intentFilter.addAction(Intent.ACTION_USER_PRESENT);
// 注册广播
registerReceiver(screenStatReceiver, intentFilter);
这样 推送服务 就基本上时时在后台开启,,这样 用户之间的推送消息 可以及时的收到