在开发andorid程序的时候,难免会牵扯到退出整个应用程序的情况,怎么完全退出呢?请参阅下面的关键代码:

import java.util.LinkedList;import java.util.List;import android.app.Activity;import android.app.AlertDialog;import android.app.Application;import android.content.DialogInterface;import android.content.Intent;public class SysApplication extends Application {private List<Activity> mList = new LinkedList<Activity>();private static SysApplication instance;private SysApplication() {}public synchronized static SysApplication getInstance() {if (null == instance) {instance = new SysApplication();}return instance;}// add Activitypublic 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);}}@Overridepublic void onLowMemory() {super.onLowMemory();System.gc();}}
在每个Activity的onCreate方法中添加类似代码:

public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);SysApplication.getInstance().addActivity(this);}

需要退出程序的时候,调用:

SysApplication.getInstance().exit();

简而言之,通过单例模式把每个Activity 的引用添加到一个全局链表中,每次退出程序调用System.exit(0)时,先调用链表中Activity 的finish方法。

更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. 奉上20个Android很有用的代码片段
  3. 让Android程序自动打开软键盘
  4. Android(安卓)字符乱码问题的处理
  5. Android判断touch事件点是否在view范围内的方法
  6. android 在HTML中显示bitmap
  7. 2、一、Introduction(入门):1、Application Fundamentals(应用程
  8. android中 layer-list和include的使用
  9. 关于 android 中 postDelayed方法的讲解

随机推荐

  1. 2013学Android不得不看的13个视频课程(共
  2. Android中的网络时间同步
  3. Android流媒体
  4. Android架构
  5. Android一个简单的socket通信手机间推送
  6. Android(安卓)进程和线程模型 .
  7. Android使用VideoView播放网络视频
  8. android 双击屏幕触发事件,放大图片,不用
  9. android 使用contentobserver监听数据库
  10. Android(安卓)GPIO LED 驱动与HAL分析