您的位置:首页 > 移动开发 > Android开发

android完全退出应用程序

2013-02-28 21:25 309 查看
                                                                   android 退出应用程序, 单例模式管理Activity

android 退出应用程序会调用android.os.Process.killProcess(android.os.Process.myPid())
或是System.exit(0),这只是针对第一个Activity(也就是入口的Activity)时生效。如果有A,B,C
三个Activity,而想在B 或C 中Activity 退出,调用上面的方法,往往会销毁当前的Activity 返回上
一个Activity。当然也可以逐个返回上一个Activity,直到跳转到入口的Activity,最后退出应用程
序。但这样比较麻烦,而且逐个返回的体验并不友好。
网上比较流行的方法是定义栈,写一个ExitApplication 类,利用单例模式管理Activity,在每个在
Activity 的onCreate()方法中调用ExitApplication.getInstance().addActivity(this)方法,在退
出时调用ExitApplication.getInstance().exit()方法,就可以完全退出应用程序了。






ExitApplication 类

代码如下:

view plaincopy to clipboardprint?

1 import java.util.LinkedList;

2 import java.util.List;

3

4 import android.app.Activity;

5 import android.app.Application;

6

7 public class ExitApplication extends Application {

9 private List<Activity> activityList=new LinkedList<Activity>();

10 private static ExitApplication instance;

11

12 private ExitApplication()

13 {

14 }

15 //单例模式中获取唯一的ExitApplication 实例

16 public static ExitApplication getInstance()

17 {

18 if(null == instance)

19 {

20 instance = new ExitApplication();

21 }

22 return instance;

23

24 }

25 //添加Activity 到容器中

26 public void addActivity(Activity activity)

27 {

28 activityList.add(activity);

29 }

30 //遍历所有Activity 并finish

31

32 public void exit()

33 {

34

35 for(Activity activity:activityList)

36 {

37 activity.finish();

38 }

39

40 System.exit(0);

41

42 }

43 }



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: