随时随地退出程序
2016-01-08 17:58
176 查看
一个APP应用一般会有很多页面,有时可可以在某个页面需要退出整个应用此时我们可以用一个专门的集合类对所有的活动进行管理就可以了,下面我们就来实现一下。
新建一个
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();
}
}
}
}
在活动管理器中,我们通过一个
List
来暂存活动,然后提供了一个
addActivity()方法用
于向
List
中添加一个活动,提供了一个
removeActivity()方法用于从
List
中移除活动,最后
提供了一个
finishAll()方法用于将
List
中存储的活动全部都销毁掉。此时我们可以写一个BaseActivity
[b]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);
}
}
[/b]
在BaseActivity
的
onCreate()方法中调用了
ActivityCollector
的
addActivity()方法,表明
将当前正在创建的活动添加到活动管理器里。然后在
BaseActivity
中重写
onDestroy()方法,
并调用了
ActivityCollector
的
removeActivity()方法,表明将一个马上要销毁的活动从活动管
理器里移除。
从此以后,不管你想在什么地方退出程序,只需继承BaseActivity调用
ActivityCollector.finishAll()方法
就可以了。
新建一个
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();
}
}
}
}
在活动管理器中,我们通过一个
List
来暂存活动,然后提供了一个
addActivity()方法用
于向
List
中添加一个活动,提供了一个
removeActivity()方法用于从
List
中移除活动,最后
提供了一个
finishAll()方法用于将
List
中存储的活动全部都销毁掉。此时我们可以写一个BaseActivity
[b]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);
}
}
[/b]
在BaseActivity
的
onCreate()方法中调用了
ActivityCollector
的
addActivity()方法,表明
将当前正在创建的活动添加到活动管理器里。然后在
BaseActivity
中重写
onDestroy()方法,
并调用了
ActivityCollector
的
removeActivity()方法,表明将一个马上要销毁的活动从活动管
理器里移除。
从此以后,不管你想在什么地方退出程序,只需继承BaseActivity调用
ActivityCollector.finishAll()方法
就可以了。
相关文章推荐
- 用Sklearn做判别测试
- Android 编程下 Touch 事件的分发和消费机制
- java生成二维码
- JAVA读取propertise文件内容两种方式
- 正则
- git删除远程仓库的某次错误提交
- TCP/IP协议三次握手与四次握手流程解析
- VMware12下 桥接模式 静态IP配置
- jsonp之jQuery.getScript()方法的简单使用
- linux 虚拟机 kvm
- Java的复制详解
- iOS-获取手机健康步数,去除人为添加的数据
- python 浅拷贝(shallow copy) 深拷贝(deep copy)
- 博客说明
- window 安装Mysql 5.6 发生系统错误 1067
- Windows下用EvtSys发送日志到syslog-ng服务器
- sdk manager 代理,解决下载速度慢的问题
- 网络编程通讯的要素
- MySQL 相关命令
- Fedora 20 的 r8168 与 rtl8723be 驱动