当我们开发一个应用程序有很多界面的时候,该怎么安全退出程序?举个例子像UC浏览器打开很多网页,想退出应用总不能一直按返回键,所以在UC的菜单里有一个退出的按钮,直接退出整个应用。关于APP的安全退出,有如下几种方式:
1、抛异常强制退出:
该方法通过抛异常,使程序Force Close。
但是,需要解决的问题是,如何使程序结束掉,而不弹出Force Close的窗口。
2、记录打开的Activity:
每打开一个Activity,就记录下来。在需要退出时,关闭每一个Activity即可。
List<Activity> lists ; 在application 全集的环境里面
lists = new ArrayList<Activity>();
每一个activity在执行oncreate()方法的时候 lists.add(this);
结束的时候把当前Activity从集合中移除Ondestory() lists.remove(this);
当调用退出命令的时候,执行以下代码,遍历集合,循环退出
for(Activity activity: lists)
{
activity.finish();
}
3、发送特定广播:
在需要结束应用时,发送一个特定的广播,每个Activity收到广播后,关闭即可。
给某个activity 注册接受接受广播的意图
registerReceiver(receiver, filter)
在需要关闭程序的时候,执行退出命令时,发送一个退出应用的广播,每个Activity接收到 关闭activity的广播就调用finish()方法 把当前的activity finish()掉。
4、递归退出
在打开新的Activity时使用startActivityForResult,然后自己加标志,在onActivityResult中处理,递归关闭。
OnActivityResult();
5.干掉自己
安全结束进程 android.os.Process.killProcess(android.os.Process.myPid());
System.exit(0); //常规java、c#的标准退出法,返回值为0代表正常退出
转载时请注明出处及相应链接,本文永久地址:https://blog.yayuanzi.com/1223.html


微信打赏

支付宝打赏