Android 如何实现Service不会回收也不被第三方软件杀死

1、不被系统回收

在manifest.xml中设置
<application

  android:allowBackup="true"
       
 android:icon="@drawable/logo"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" 

android:persistent="true"

>

2、不被第三方软件杀死

      a、重写Service的onStartCommand,修改flag的值,此处flag设置是Service被杀之后重新启动

@Override

public int onStartCommand(Intent intent,int flag,int startId){

flag=START_STICKY;

return super.onStartCommand(intent,flag,startId);

}

       b、重写Service的onDestroy,Service被销毁之后,手动启动该服务

@Override

public void onDestroy(){

super.onDestroy();

Intent intent=new Intent();

intent.setClass(this,MainService.class);

startService(intent);

}

3、以上的方法都无法避免被杀掉的命运,如果有某些模块想一直保持运行状态,那么上面的方法都是无法实现。

解决方案是在使用Notification机制:

在Service的onCreate方法中:

@Override

public void onCreate(){

Notification notification=new Notification();

startForeground(1,notification);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值