【转】android实现退出整个工程
我们在写android应用程序时,经常会遇到想退出当前Acitivity,或者直接退出应用程序.我之前的一般操作是按返回键,或者直接按home键直接返回,其实这两种操作都没有关闭当前应用程序,没有释放系统资源。有时跳转的activity较多时,还需要多次按返回键,这样感觉一点都不爽。
后面添加了一个菜单返回功能键,这个方法也只能用system.exit(0)来关闭当前活动的Activity,附代码:
public boolean onCreateOptionsMenu(Menu menu) {super.onCreateOptionsMenu(menu); MenuItem item = menu.add(Menu.NONE, Menu.NONE, Menu.NONE, "Exit"); item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { public boolean onMenuItemClick(MenuItem item) { System.exit(0); return true; } }); return true; }
想到这样太不方便了,每次退出界面之后应用程序还在运行,今天查了下资料终于把这个问题给解决了,
网上提供了几种方法,我吸收了下面这个自认为简单易懂的方法,将下面SysApplication这个类复制到工程里面,然后在每个Acitivity的oncreate方法里面通过SysApplication.getInstance().addActivity(this);添加当前Acitivity到ancivitylist里面去,最后在想退出的时候调用SysApplication.getInstance().exit();可直接关闭所有的Acitivity并退出应用程序。
import java.util.LinkedList; import java.util.List; import android.app.Activity; import android.app.AlertDialog; import android.app.Application; import android.content.DialogInterface; import android.content.Intent; public class SysApplication extends Application { private List mList = new LinkedList(); private static SysApplication instance; private SysApplication() { } public synchronized static SysApplication getInstance() { if (null == instance) { instance = new SysApplication(); } return instance; } // add Activity public void addActivity(Activity activity) { mList.add(activity); } public void exit() { try { for (Activity activity : mList) { if (activity != null) activity.finish(); } } catch (Exception e) { e.printStackTrace(); } finally { System.exit(0); } } public void onLowMemory() { super.onLowMemory(); System.gc(); } }
在应用程序里面 的activity的oncreate里面添加SysApplication.getInstance().addActivity(this)
如:
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); SysApplication.getInstance().addActivity(this); }
在需要退出程序的时候,调用:
SysApplication.getInstance().exit();
简而言之,通过单例模式把每个Activity 的引用添加到一个全局链表中,每次退出程序调用System.exit(0)时,先调用链表中Activity 的finish方法。
转载于:https://www.cnblogs.com/Couch-potato/archive/2012/11/19/2776997.html
【转】android实现退出整个工程相关推荐
- Android 如何退出整个应用程序?
转载文章:http://blog.csdn.net/sunnyfans/article/details/7688092 Android 怎么退出整个应用程序? 我们在写android应用程序时,经常会 ...
- Android 怎么退出整个应用程序?
Android 怎么退出整个应用程序? 我们在写android应用程序时,经常会遇到想退出当前Acitivity,或者直接退出应用程序.我之前的一般操作是按返回键,或者直接按home键直接返回,其实这 ...
- android读取工程目录下的文件,Android编程实现读取工程中的txt文件功能
本文实例讲述了Android编程实现读取工程中的txt文件功能.分享给大家供大家参考,具体如下: 1. 众所周知,Android的res文件夹是用来存储资源的,可以在res文件夹下建立一个raw文件夹 ...
- android 点击退出账号,Android应用退出登录的实现方法
每一个app都会有一个"退出登陆"的功能,当点击退出之后需要将所有的Activity都finish掉,开始是想将栈中的所有Activity清除掉,但是没有找到方法,后来用广播实现了 ...
- Android实现退出提示的功能
摘要:本文主要是实现在Android中退出提示的功能,平常使用Android手机时,点击返回键时,由于不小心点击返回键过快,导至程序返回试界面之后直接退出程序,导至用户还要再重新登录一次.为解决此类问 ...
- android studio 如何导入工程文件,Android studio如何导入已有的eclipse工程
google最近新推出了android studio软件来取代eclipse,使用起来确实体验很不错,比eclipse要强大一些,不过,现在包括github上面的代码都是基于eclipse的,因此,我 ...
- android 退出多个activity,Android 中 退出多个activity的经典方法
1.使用list集合方式 用list保存activity实例,然后逐一干掉 import java.util.linkedlist; import java.util.list; import and ...
- android禁用应用组件,Android彻底退出(关闭)应用程序.docx
Android彻底退出(关闭)应用程序.docx 做android开发时,发现一个关于android退出时不能彻底关闭的问题,比如:一个程序里new?出了N多个Thread,这样在退出程序的可能不能完 ...
- Android 双击退出和单击回到桌面
Android 双击退出和单击回到桌面 //双击退出app@Overridepublic void onBackPressed() {if (System.currentTimeMillis() - ...
最新文章
- 测试录制的电话拨码声音信号在发送过程中的问题
- 无线网络国际会议排名(zz)
- 采用redis+ThreadLocal获取全局的登录用户信息(二)增加token快失效时刷新
- 知识图谱最新权威综述论文解读:实体发现
- Redis——史上最强【集群】入门实践教程
- JS对象 颠倒数组元素顺序reverse() reverse() 方法用于颠倒数组中元素的顺序。
- python爬取qq好友网络状态_Python爬虫实战----爬取QQ空间好友说说并生成词云(超详细)...
- python基础之列表生成式和生成器
- Affymetrix基因芯片小总结
- Exchange2010安装指南
- 使用EasyExcel的模板导出复杂表头的Excel- 先单组数据填充,再多组数据填充
- 数据分析项目-大选献金数据分析
- 伴雨夜谈【即便大雨倾盆,也无法击起心中的波澜】
- SpringSecurity实现自定义登录界面
- 身份证男女识别---进一步优化03
- Android IOS平台AE动画库
- 阿昆的Java学习日记Day2
- python 麻将算胡,快速算法 没有递归,不超过100行
- eclipse Android添加权限
- (遇到问题)占用空间远大于文件本身---exFAT移动固态硬盘瞬间装满(已解决-文件系统和默认簇大小的原因)