android关闭应用 service 重启问题

关闭退出应用:

System.exit(0);
android.os.Process.killProcess(android.os.Process.myPid());
//针对2.2之前的SDK版本
android.app.ActivityManager am = (android.app.ActivityManager)getSystemService (ACTIVITY_SERVICE);  
am.restartPackage("packageName");
加入权限 : <uses-permission android:name="android.permission.RESTART_PACKAGES"/>

这些强制关闭应用的方式可能会导致 Activity、Service、ContentProvider等组件会被重启 ,里面的所有东西都被初始化 。如果想直接kill掉应用又想继续运行service而不重启那怎么办 ?

1.重写service这个生命周期函数

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
   Log.e(TAG, "onStartCommand()");
   return Service.START_NOT_STICKY;
}

2.AndroidManifest.xml配置如下:

<service android:name=".TestService" android:process="com.lhd.test1.process.other"/>
android:process的值必须和你的应用程序包名不同,将会在android手机进程中看到相关的进程 。


完工 。。。

     随便看看这个?

Service.START_STICKY                    //出现异常,意外停止,直接重启service;
Service.START_NOT_STICKY                //出现异常,意外停止,不重启service
Service.START_REDELIVER_INTENT          //出现隐藏,意外停止,传入上次的intent,重启service

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值