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

[java] view plain copy print ?
  1. import java.util.LinkedList;
  2. import java.util.List;
  3. import android.app.Activity;
  4. import android.app.AlertDialog;
  5. import android.app.Application;
  6. import android.content.DialogInterface;
  7. import android.content.Intent;
  8. public class SysApplication extends Application {
  9. private List<Activity> mList = new LinkedList<Activity>();
  10. private static SysApplication instance;
  11. private SysApplication() {
  12. }
  13. public synchronized static SysApplication getInstance() {
  14. if (null == instance) {
  15. instance = new SysApplication();
  16. }
  17. return instance;
  18. }
  19. // add Activity
  20. public void addActivity(Activity activity) {
  21. mList.add(activity);
  22. }
  23. public void exit() {
  24. try {
  25. for (Activity activity : mList) {
  26. if (activity != null)
  27. activity.finish();
  28. }
  29. } catch (Exception e) {
  30. e.printStackTrace();
  31. } finally {
  32. System.exit(0);
  33. }
  34. }
  35. @Override
  36. public void onLowMemory() {
  37. super.onLowMemory();
  38. System.gc();
  39. }
  40. }
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 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); } } @Override public void onLowMemory() { super.onLowMemory(); System.gc(); } } 在每个Activity的onCreate方法中添加类似代码:

[java] view plain copy print ?
  1. public void onCreate(Bundle savedInstanceState) {
  2. super.onCreate(savedInstanceState);
  3. SysApplication.getInstance().addActivity(this);
  4. }
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SysApplication.getInstance().addActivity(this); }

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

[java] view plain copy print ?
  1. SysApplication.getInstance().exit();
SysApplication.getInstance().exit();

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

更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. Spring For Android初体验
  3. android访问权限(Android(安卓)permission )大全
  4. Android开发如何去除标题栏title去除标题栏title
  5. android实现下载的核心代码
  6. Android快速批量打渠道包(AndroidManifestModifier)
  7. 一些资料,binder,content provider
  8. Qt android浅析
  9. Android(安卓)C程序打印logcat日志

随机推荐

  1. Android跳转浏览器打开URL
  2. 如何取Android设备日志
  3. android:windowSoftInputMode 不生效
  4. Android:Google Play services and OAuth
  5. Android基础开发文档汇总
  6. android samsung note3  device not fou
  7. android 颜色采摘
  8. 动态创建ImageView视图
  9. Android Studio更改SDK或者JDK路径
  10. android 脸部抠图