您的位置:首页 > 移动开发 > Android开发

Android---彻底退出程序 全解

2016-10-11 10:55 92 查看
想必大家也会遇到这种情况,就是在开启了多个activity,然后调用自己程序的双击退出程序的模块时,时常会跳到另一个activity,而不是退出程序,还会有闪黑的不良效果,然后你一般会去百度一些彻底退出程序的代码,一般网上有四种推荐方法:

1.finish—–杀死的当前activity

this.finish


2.killProcess—–杀死进程

android.os.Process.killProcess(android.os.Process.myPid());


3.exit—–结束当前运行的虚拟机

System.exit(0);


4.restartPackage—–想同的UID的进程会被kill,还会停止相关的服务以及移除所有的Activity,并且会发送一个广播。

ActivityManager manager = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);

manager.restartPackage(getPackageName());


不知道大家试过上面几种方法没,反正我是试过了,解决不了我上面出现的bug。最后是将没个打开的activity记录下来,然后再结束的时候,一个一个的kill。

public class MyApplication extends Application {

private List<Activity> mList = new LinkedList<Activity>();
private static VossApplication instance;

public synchronized static VossApplication getInstance() {
if (null == instance) {
instance = new VossApplication();
}
return instance;
}

// add Activity
public void addActivity(Activity activity) {
mList.add(activity);
}

public void exit() {
try {
for (Activity activity : mList) {
if (activity != null)
activity.finish();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
System.exit(0);
}
}
}


然后在你每个activity的oncreate()方法中添加

MyApplication.geInstance.addActivity(this);


再然后在你退出程序的地方调用

MyApplication.getInstance.exit();


这样不过就解决了。

刚开始自己的码生,许多学习还得靠大神们的神笔。

yoBoss敬上。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: