怎么让service一直运行
1、在service被销毁的时候发送一条广播,即在onDestory里,如下代码所示:
@Override
public void onDestroy() {
super.onDestroy();
Intent intent = new Intent("在这里写上广播消息,例如com.mmm.ddd.service.destory");
sendBroadcast(intent);
}
2、然后写一个广播,代码如下:
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if ( intent.getAction().equals("com.mmm.ddd.service.destory")) {
Intent myIntent = new Intent(context, service(这里是服务的名称).class);
// myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startService(myIntent);
}
}
3、然后在mainfest文件里注册广播和服务,如下代码所示:
<service
android:name="(服务的名称)"
android:priority="1000" />
4、在这里可以给service加上优先级,1000的话表示服务的优先级很高,在系统内存低的时候不会被先考虑干掉,如下代码所示:
<receiver android:name="(广播的名称)" >
<intent-filter>
<action android:name="com.mmm.ddd.service.destory" />
</intent-filter>
</receiver>
当然,这种方法也不是非常保险,我们还可以写一个守护线程,来监听这个服务是否被销毁。
5、再开一个服务监听第一个服务的销毁
此方法和上一个方法类似,只不过在onDestory时,服务一发送广播,告知服务二服务一被销毁了,此时服务二接收广播启动服务一,同理,服务二销毁时发送广播告知服务一,服务一在启动服务二。