【Android】24、如何随时随地退出程序
2016-05-25 16:45
417 查看
本篇博文最后修改时间:2016年5月25日,16:33。
一、简介
本篇介绍如何随时随地退出程序。
二、实验平台
系统版本:Windows7 家庭普通版 32位操作系统。
三、版权声明
博主:思跡
声明:喝水不忘挖井人,转载请注明出处。
原文地址:http://blog.csdn.net/omoiato
联系方式:315878825@qq.com
Java零基础入门交流群:541462902
四、如何随时随地退出程序
如果目前我们手机的界面还停留在ThirdActivity,想退出程序是非常不方便的,
需要连按三次Back 键才行。按Home 键只是把程序挂起,并没有退出程序。
如果我们的程序需要一个注销或者退出的功能该怎么办呢?
必须要有一个随时随地都能退出程序的方案才行。
其实解决思路也很简单,只需要用一个专门的集合类对所有的活动进行管理就可以了,
下面我们就来实现一下。
1、新建一个ActivityCollector 类作为活动管理器
在活动管理器中,我们通过一个List 来暂存活动,
然后提供了一个addActivity()方法用于向List 中添加一个活动,
提供了一个removeActivity()方法用于从List 中移除活动,
最后提供了一个finishAll()方法用于将List 中存储的活动全部都销毁掉。
2、修改BaseActivity 中的代码
在BaseActivity 的onCreate()方法中调用了ActivityCollector 的addActivity()方法,
表明将当前正在创建的活动添加到活动管理器里。
然后在BaseActivity 中重写onDestroy()方法,并调用了ActivityCollector 的removeActivity()方法,
表明将一个马上要销毁的活动从活动管理器里移除。
ActivityCollector.finishAll()方法
从此以后,不管我们想在什么地方退出程序,只需要调用ActivityCollector.finishAll()方法就可以了。
例如在ThirdActivity 界面想通过点击按钮直接退出程序,只需将代码改成如下所示:
当然我们还可以在销毁所有活动的代码后面再加上杀掉当前进程的代码,以保证程序完全退出。
一、简介
本篇介绍如何随时随地退出程序。
二、实验平台
系统版本:Windows7 家庭普通版 32位操作系统。
三、版权声明
博主:思跡
声明:喝水不忘挖井人,转载请注明出处。
原文地址:http://blog.csdn.net/omoiato
联系方式:315878825@qq.com
Java零基础入门交流群:541462902
四、如何随时随地退出程序
如果目前我们手机的界面还停留在ThirdActivity,想退出程序是非常不方便的,
需要连按三次Back 键才行。按Home 键只是把程序挂起,并没有退出程序。
如果我们的程序需要一个注销或者退出的功能该怎么办呢?
必须要有一个随时随地都能退出程序的方案才行。
其实解决思路也很简单,只需要用一个专门的集合类对所有的活动进行管理就可以了,
下面我们就来实现一下。
1、新建一个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 中存储的活动全部都销毁掉。
2、修改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); } }
在BaseActivity 的onCreate()方法中调用了ActivityCollector 的addActivity()方法,
表明将当前正在创建的活动添加到活动管理器里。
然后在BaseActivity 中重写onDestroy()方法,并调用了ActivityCollector 的removeActivity()方法,
表明将一个马上要销毁的活动从活动管理器里移除。
ActivityCollector.finishAll()方法
从此以后,不管我们想在什么地方退出程序,只需要调用ActivityCollector.finishAll()方法就可以了。
例如在ThirdActivity 界面想通过点击按钮直接退出程序,只需将代码改成如下所示:
public class ThirdActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d("ThirdActivity", "Task id is " + getTaskId()); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.third_layout); Button button3 = (Button) findViewById(R.id.button_3); button3.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { ActivityCollector.finishAll(); } }); } }
当然我们还可以在销毁所有活动的代码后面再加上杀掉当前进程的代码,以保证程序完全退出。
相关文章推荐
- (4.1.20)android的样式(style)与主题(theme)
- android N 分屏
- Android studio JavaDoc的使用
- Android之Adapter用法总结
- Android AudioManager类(必看)
- view坐标_ _ Android应用坐标系统全面详解
- Android drawable文件使用(一)layer-list
- AsyncTask 坑 (二) AsyncTask对象生命周期
- 关于Android中设置闹钟的相对完善的解决方案
- android listview与adapter用法
- 详解Android TabHost的多种实现方法 附源码下载
- Android 自定义View 让内容跟随手指滚动
- Android的拍照功能
- Android端 WebP图片压缩与传输的一点探索
- Android设计中如何切图.9.png(点9图)
- android KTV 开发(一)自定义videoView 实现视频大小自由缩放、全屏与预览
- android刷新媒体库
- android二维码扫描、读取、识别、生成、带logo
- Android中Style和Theme的使用
- android 处理程序全局异常和错误,UncaughtExceptionHandler