码迷,mamicode.com
首页 > 其他好文 > 详细

退出程序(转自:第一行代码)

时间:2017-04-15 19:14:36      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:activity   extend   task   注销   xtend   getc   array   实现   tcl   

如果目前你手机的界面还停留在ThirdActivity,你会发现当前想退出程序是非常不方便的,需要连按三次Back 键才行。按Home 键只是把程序挂起,并没有退出程序。其实这个问题就足以引起你的思考,如果我们的程序需要一个注销或者退出的功能该怎么办呢?必须要有一个随时随地都能退出程序的方案才行。其实解决思路也很简单,只需要用一个专门的集合类对所有的活动进行管理就可以了,下面我们就来实现一下。

 

一.新建一个ActivityCollector 类作为活动管理器,代码如下所示:

public class ActivityCollector {

       public static List<Activity> activities = new ArrayList<Activity>();

       public static void addActivity(Activity activity) {

              activities.add(activity);

       }

       public static void removeActivity(Activity activity) {

              activities.remove(activity);

       }

       public static void finishAll() {

              for (Activity activity : activities) {

                     if (!activity.isFinishing()) {

                            activity.finish();

                     }

              }

              System.exit(0);

       }

}

 

二.新建一个BaseActivity

public class BaseActivity extends Activity {

       @Override

       protected void onCreate(Bundle savedInstanceState) {

              super.onCreate(savedInstanceState);

              Log.d("BaseActivity", getClass().getSimpleName());

              ActivityCollector.addActivity(this);

       }

 

       @Override

       protected void onDestroy() {

              super.onDestroy();

              ActivityCollector.removeActivity(this);

       }

}

 

三.所有Activity继承BaseActivity,再退出的地方加

ActivityCollector.finishAll();

 

 

 

*****************

Android 应用退出后不留在最近运行任务栏中
只要给Activity设置“Android:excludeFromRecents=true”即可,官方的解释如下:
如果设置为true,那么这个Activity将不会出现在最近任务列表中,如果这个Activity是整个Task的根Activity,整个Task将不会出现在最近任务列表中。

 

退出程序(转自:第一行代码)

标签:activity   extend   task   注销   xtend   getc   array   实现   tcl   

原文地址:http://www.cnblogs.com/itfenqing/p/6715106.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!