建立一个Activity池,可以随时随地退出程序

来源:互联网 发布:淘宝仓库配货员累吗 编辑:程序博客网 时间:2024/05/22 17:26

如果目前你手机的界面还停留在ThirdActivity,你会发现当前想退出程序是非常不方便的,需要连按三次back键才行。按Home键只是把程序挂起,并没有退出程序。其实这个问题就足以引起你的思考,如果我们的程序需要一个注销或者退出的功能该怎么办呢?必须要有一个随时随地都能退出程序的方案才行。

其实解决思路也很简单,只需要用一个专门的集合类对所有的活动进行管理就可以了,下面我们就来实现以下。

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

/** *  */package com.littleRich.weixin;import java.util.ArrayList;import java.util.List;import android.app.Activity;/**  * @author: littleRich * @date: 2015-8-13 下午10:32:23  * @version 1.0  * @parameter   * @since   * @return   */public class ActivityCollector {/** * 在活动管理器中,我们通过一个List来暂存活动 */public static  List<Activity> activities = new ArrayList<Activity>();/** * 向List中添加一个活动 * @param activity */public static void addActivity(Activity activity){activities.add(activity);}/** * 从List中移除活动 * @param activity */public static void removeActivity(Activity activity){activities.remove(activity);}/** * 将List中存储的活动全部都销毁掉 */public static void finishAll(){for (Activity activity : activities) {if(!activity.isFinishing()){activity.finish();}}}}


接下来在每个Activity中的onCreate()方法中调用addActivity()方法,表明将当前正在创建的活动添加到管理器里。并在onDestroy()中调用removeActivity(),表明将一个马上要销毁的活动从活动管理器中移除。

具体代码如下:

/** *  */package com.littleRich.weixin;import android.app.Activity;import android.os.Bundle;/**  * @author: littleRich * @date: 2015-8-13 下午10:51:42  * @version 1.0  * @parameter   * @since   * @return   */public class EveryActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);ActivityCollector.addActivity(this);}@Overrideprotected void onDestroy() {super.onDestroy();ActivityCollector.removeActivity(this);}}


从此以后,不管你想在什么地方退出程序,只需要调用ActivityCollector.finishAll()方法就可以了。

0 0
原创粉丝点击