在开发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 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方法中添加类似代码: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SysApplication.getInstance().addActivity(this); }在需要退出程序的时候,调用:
SysApplication.getInstance().exit();简而言之,通过单例模式把每个Activity 的引用添加到一个全局链表中,每次退出程序调用System.exit(0)时,先调用链表中Activity 的finish方法。
本文介绍了一种通过单例模式管理所有Activity并实现整个Android应用安全退出的方法。具体做法是在Application类中维护一个Activity的列表,并在每个Activity启动时将其加入列表,在退出时遍历列表并调用每个Activity的finish方法。
204

被折叠的 条评论
为什么被折叠?



