关闭退出应用:
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
本文深入探讨了在Android应用中通过生命周期函数onStartCommand和配置服务属性来实现Service在异常情况下的稳定运行,同时介绍了如何利用不同start flags控制Service的重启行为。此外,文章还详细阐述了通过ActivityManager重启指定应用包的方法,以及在不重启应用的情况下继续运行Service的策略。旨在为开发者提供一种有效管理Service生命周期,确保应用稳定运行的技术方案。
1446

被折叠的 条评论
为什么被折叠?



