怎么让service一直运行

2024-11-02 06:16:21

1、在service被销毁的时候发送一条广播,即在onDestory里,如下代码所示:@OverridepublicvoidonDestroy(){ super.onDestroy(); Intentintent=newIntent("在这里写上广播消息,例如com.mmm.ddd.service.destory"); sendBroadcast(intent);}

2、然后写一个广播,代码如下:@OverridepublicvoidonReceive(Contextcontext,Intentintent){ //TODOAuto-generatedmethodstub if(intent.getAction().equals("com.mmm.ddd.service.destory")){ IntentmyIntent=newIntent(context,service(这里是服务的名称).class); //myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startService(myIntent); } }

3、然后在mainfest文件里注册广播和服务,如下代码所示:<serviceandroid:name="(服务的名称)"android:priority="1000"/>

4、在这里可以给service加上优先级,1000的话表示服务的优先级很高,在系统内存低的时候不会被先考虑干掉,如下代码所示:<receiverandroid:name="(广播的名称)"> <intent-filter> <actionandroid:name="com.mmm.ddd.service.destory"/> </intent-filter></receiver> 当然,这种方法也不是非常保险,我们还可以写一个守护线程,来监听这个服务是否被销毁。

5、再开一个服务监听第一个服务的销毁此方法和上一个方法类似,只不过在onDestory时,服务一发送广播,告知服务二服务一被销毁了,此时服务二接收广播启动服务一,同理,服务二销毁时发送广播告知服务一,服务一在启动服务二。

猜你喜欢