关闭退出应用:
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