Android退出程序方法整理
来源:互联网 发布:淘宝新品上架翻页 编辑:程序博客网 时间:2024/04/30 01:01
在使用unity和eclipse集成开发时,遇到了尴尬的情况程序在侦听到unity发来的消息后,跳到另外一个activity后,在另外一个activity里面尝试退出时,试了好几种方法都没有效果,后来使用了广播的方法,终于成功了,非常纠结。整理了一下从网上搜来的试过的方法,留着以后用。
1. Dalvik VM的本地方法
android.os.Process.killProcess(android.os.Process.myPid()) //获取PID
System.exit(0); //常规java、c#的标准退出法,返回值为0代表正常退出
2. 任务管理器方法
ActivityManager am = (ActivityManager)getSystemService (Context.ACTIVITY_SERVICE);
am.restartPackage(getPackageName());
首先要说明该方法运行在Android 1.5 API Level为3以上才可以,同时需要权限android.permission.RESTART_PACKAGES。3. 根据Activity的声明周期
Android的窗口类提供了历史栈,可以通过stack的原理来巧妙的实现,在A窗口打开B窗口时在Intent中直接加入标志Intent.FLAG_ACTIVITY_CLEAR_TOP,这样开启B时将会清除该进程空间的所有Activity。
在A窗口中使用下面的代码调用B窗口
Intent intent = new Intent();
intent.setClass(Android123.this, CWJ.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); //注意本行的FLAG设置
startActivity(intent);
接下来在B窗口中需要退出时直接使用finish方法即可全部退出。
4.制造异常退出
就是制造一个人为的错误,这样Android的dalvik vm将强制关闭程序。这时有个问题就是弹出的Force Close对话框,不过这可以通过重写Android应用程序的Application基类,自己实现Thread.UncaughtExceptionHandler接口的uncaughtException方法,可以避免出现FC窗口。
5.广播方式退出 参考:http://www.cnblogs.com/jauntlin/archive/2011/05/28/2060712.html
在你的每个Activity里,注册一个特定的Broadcast,当你想退出程序时,就send一个特定的Broadcast,这样所有还没有finish的activity都可以接收到这个broadcast,接收到broadcast后,就finish掉Activity。这样该程序的所有Activity就finish了,也就达到了退出程序的效果。
实现过程中,为了优化程序,首先写一个父类继承Activity,其他的Activity都继承此父类(你也可以在每个Activity中实现其中的代码,不过相比这种有点麻烦),代码如下:
public class ApplicationActivity extends Activity {
6.自定义栈
参考:http://disanji.net/2011/02/23/android-four-way-to-quit-current-program/
- Android退出程序方法整理
- Android 完全退出程序方法
- Android中一键退出程序方法
- android退出多个activity方法整理
- android应用程序如何退出?探究程序退出的方法
- android 退出程序的方法 finish无法彻底退出
- Android退出程序的多种方法
- android程序退出当前activity的方法
- Android应用完全退出程序的方法!!!
- android程序退出当前activity的方法
- Android 退出程序的三种方法
- android 程序的几种退出方法
- Android 完全退出程序的方法
- Android程序完全退出的方法
- android程序退出当前activity的方法
- Android 完全退出程序的方法
- 彻底退出android程序的方法
- android 程序完全退出的有效方法
- 所有程序员必须收藏的网站
- 逻辑移位与算术移位的区别
- android socket
- CSDN第一次课堂感受
- 关于mount nfs时-o nolock的问题
- Android退出程序方法整理
- 从零开始学jQuery,jQuery入门教程
- 在Excel中用代码嵌入TextBox并设定Chage事件。
- 关于mount后/mnt不能写入和修改的问题
- Linux curl使用简单介绍
- c++ 内存存储 解决char*p, char p[]的问题
- 清除火狐textarea内容
- 《计算机网络原理(谢希仁)》 笔记[1]——第 1 章 概述
- POJ 1228 Grandpa's Estate