怎样退出终止APP

学不好语文的LJ码农IP属地: 云南
字数 281

以下内容整理自互联网,仅用于个人学习


1. 链表存储所有Activity

在Application中定义一个单例模式的Activity链表来管理所有Activity,退出时,逐个调用finish()。

2. ActivityManager

在AndroidManifest.xml添加权限

<uses permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" ></uses>

退出应用时,调用

ActivityManager am= (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE); 
am.killBackgroundProcesses(this.getPackageName());

3. Dalvik VM的本地方法

android.os.Process.killProcess(android.os.Process.myPid())    //获取PID  
System.exit(0);   //常规java标准退出法,返回值为0代表正常退出

4. Activity启动标记

Android的窗口类提供了历史栈,我们可以通过Stack的原理来巧妙的实现,这里我们在A窗口打开B窗口时在Intent中直接加入标记Intent.FLAG_ACTIVITY_CLEAR_TOP,这样开启B时将会清除该进程空间的所有Activity。

在A窗口中使用下面的代码调用B窗口:

Intent intent = new Intent();  
intent.setClass(this, B.class);  
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);  //注意本行的FLAG设置  
startActivity(intent);

还可以通过递归退出的方式,在打开新的Activity时使用startActivityForResult()方法来启动,然后自己加标记,在退出时可以递归退出。

5. 广播机制

新建BaseActivity,所有Activity继承该Activity。在BaseActivity中注册广播接收器,在onReceive调用finish()。

6. 强制异常退出

抛出异常使程序Force Close。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
1人点赞
学不好语文的LJ码农好吧,前端前端前端
总资产10共写了5.3W字获得72个赞共23个粉丝

推荐阅读更多精彩内容