Android中如何实现android 一键退出出

&nbsp>&nbsp
&nbsp>&nbsp
&nbsp>&nbsp
android一键退出
摘要:在每个App中,基本都有退出提示,注意:这里不仅是一个弹出框,而是真正意义上的退出activity,这里带大家简单实现一下这个简单的功能吧~应用程序Activity管理类:用于Activity管理和应用程序退出这个类适用于管理activity的删除啊添加啊全部删除啊这些的!---------------AppManager--------------------importjava.util.Simportandroid.app.Aimportand
在每个App中,基本都有退出提示,注意:这里不仅是一个弹出框,而是真正意义上的退出activity,这里带大家简单实现一下这个简单的功能吧~
应用程序Activity管理类:用于Activity管理和应用程序退出这个类适用于管理activity的 删除啊 添加啊 全部删除啊 这些的!
---------------AppManager--------------------
import java.util.Simport android.app.Aimport android.app.ActivityMimport android.content.C/** * 应用程序Activity管理类:用于Activity管理和应用程序退出 * @version 1.0 */public class AppManager { private static Stack&Activity& activityS private static AppM private AppManager(){} /** * 单一实例 */ public static AppManager getAppManager(){ if(instance==null){ instance=new AppManager(); } } /** * 添加Activity到堆栈 */ public void addActivity(Activity activity){ if(activityStack==null){ activityStack=new Stack&Activity&(); } activityStack.add(activity); } /** * 获取当前Activity(堆栈中最后一个压入的) */ public Activity currentActivity(){ Activity activity=activityStack.lastElement(); } /** * 结束当前Activity(堆栈中最后一个压入的) */ public void finishActivity(){ Activity activity=activityStack.lastElement(); finishActivity(activity); } /** * 结束指定的Activity */ public void finishActivity(Activity activity){ if(activity!=null){ activityStack.remove(activity); activity.finish(); activity= } } /** * 结束指定类名的Activity */ public void finishActivity(Class&?& cls){ for (Activity activity : activityStack) { if(activity.getClass().equals(cls) ){ finishActivity(activity); } } } /** * 结束所有Activity */ public void finishAllActivity(){ for (int i = 0, size = activityStack.size(); i & i++){if (null != activityStack.get(i)){ activityStack.get(i).finish();} } activityStack.clear(); } /** * 退出应用程序 */ public void AppExit(Context context) { try { finishAllActivity(); ActivityManager activityMgr= (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); activityMgr.restartPackage(context.getPackageName()); System.exit(0); } catch (Exception e) { } }}
为了方便起见,我们在代码量灰常多的情况下,我们可以写一个BaseActivity,在这个BaseActivity中,我们可以将我们所写的所有Activity视图继承BaseActivity。-------------BaseActivity--------------
public abstract class BaseActivity extends SlidingFragmentActivity{ //替换页面 @Override public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); // TODO Auto-generated method stub // 设置侧拉条目布局 //添加Activity到堆栈 AppManager.getAppManager().addActivity(this); setBehindContentView(R.layout.menu_frame); } @Override protected void onDestroy() { super.onDestroy(); //结束Activity&;从堆栈中移除 AppManager.getAppManager().finishActivity(this); }}这里作为抽象,可以适当添加一些抽象方法以供子类继承实现。
接下来就是关键性代码了,监听用户退出事件,调用并销毁所有activity---------MainActivity-----------------关键性代码 这里只贴出关键方法,要自己加了,因为本人的项目也是太多,这里不好做一些展示
/** * 监听返回--是否退出程序 */ public boolean onKeyDown(int keyCode, KeyEvent event) { boolean flag = if (keyCode == KeyEvent.KEYCODE_BACK) { // 是否退出应用 CommonUtils.Exit(this); } }
提供工具类,-------------------------CommonUtils--------------------------
/** * 退出程序 * @param cont */ public static void Exit(final Context cont) { AlertDialog.Builder builder = new AlertDialog.Builder(cont); builder.setIcon(android.R.drawable.ic_dialog_info); builder.setTitle(&确定退出xxxxx吗?&); builder.setPositiveButton(&确定&, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); //退出 AppManager.getAppManager().AppExit(cont); } }); builder.setNegativeButton(&再逛逛&, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); builder.show(); }
为了尊重原创者的创作,转载请注明地址hao54216的博客
在这里退出就简单的实现了 代码在这里就结束了-------------------------以供参考!!!
以上是的内容,更多
的内容,请您使用右上方搜索功能获取相关信息。
若你要投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内给你回复。
云服务器 ECS
可弹性伸缩、安全稳定、简单易用
&40.8元/月起
预测未发生的攻击
&24元/月起
为您提供0门槛上云实践机会
你可能还喜欢
你可能感兴趣
阿里云教程中心为您免费提供
android一键退出相关信息,包括
的信息,所有android一键退出相关内容均不代表阿里云的意见!投稿删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内答复
售前咨询热线
支持与服务
资源和社区
关注阿里云
International写一个Android一键退出功能 - 简书
写一个Android一键退出功能
写一个Android一键退出功能
写在前面:
当我们的App打开很多Activity的时候,用户挨个返回退出显然用户体验是非常不好的,所以我们有时需要提供一个一键退出功能。一键退出功能有很多种实现方法,本文我们选择比较常规的手段,用一个BaseActivity管理所有启动的Activity。
下面给出完整的BaseActivity代码
import java.util.LinkedL
import java.util.L
import android.app.A
import android.os.B
public abstract class BaseActivity extends Activity {
// 管理运行的所有的activity
public final static List&BaseActivity& mActivities = new LinkedList&BaseActivity&();
public static BaseA
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
synchronized (mActivities) {
mActivities.add(this);
private void init() {
initViews();
initData();
* 初始化Views
public abstract void initViews();
* 初始化数据
public void initData() {
protected void onResume() {
super.onResume();
activity =
protected void onPause() {
super.onPause();
activity =
protected void onDestroy() {
super.onDestroy();
synchronized (mActivities) {
mActivities.remove(this);
* 一键退出的方法
public void killAll() {
// 复制了一份mActivities 集合
List&BaseActivity&
synchronized (mActivities) {
copy = new LinkedList&BaseActivity&(mActivities);
for (BaseActivity activity : copy) {
activity.finish();
代码分析:
在项目中的所有的Activity,都继承于BaseActivity,在onCreate方法中,将这个Activity add进LinkedList中(这里选择用LinkedList是因为它增删快,适合于这个场景中),在onDestory方法中将这个Activity remove掉,这样就保证每一个启动了的Activity都存于集合LinkedList中。
然后我们写一个killAll方法,复制这个集合并且遍历退出,你可以在任何地方调用这个方法,这样我们的一键退出功能就完美实现了~
Github:https://github.com/itsMelo 欢迎 follow
itsCoder 主页:http://itscoder.com 欢迎加入
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金 相信有很多...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金相信有很多朋友...
1.什么是Activity?问的不太多,说点有深度的 四大组件之一,一般的,一个用户交互界面对应一个activity setContentView() ,// 要显示的布局 , activity 是Context的子类,同时实现了window.callback和keyeve...
首先需要知道,一键退出app要实现两个结果; 1.Activity退出 2.进程结束 我们先看&Activity的退出&,大概有以下几种方法可以实现Activity的退出. 方法1:使用BroadcastReceiver.
1.1写一个类集成BroadCastReceiv...
想起一个写一个 1. Collection├List│├LinkedList│├ArrayList│└Vector│└Stack└SetMap├Hashtable├HashMap└WeakHashMap Collection接口 Collection是最基本的集合接口,一个...
各张照片,不同年份,姿态各异,却依然是他心里的她的样子。这些照片串起了空白岁月她的镜像,她的存在慢慢被清晰地感知和复原着。 “那会儿比较胖。” 然而他的眼里她身上并木有胖字。 “在我眼里你200斤也不胖 。” 这是实话。爱着的人如何会在意这些。 照片上她张臂微笑,指尖微蹙。...
截取写作社社友文章片段分享
最近《我的前半生》大火。 无数女性双眼迷离深夜追剧,你我他的微信朋友圈无一例外子君凌玲一票主角霸屏,公众号文章铺天盖地从各个角度全方位剖析。 甚至,坐在公交上,隔壁座位都能传来子君嗲嗲的上海普通话:“这是羊皮鞋子哎,不能沾水的!”;走在马路上,与一对情侣擦肩而过,能听见女生...Posts - 10,
Articles - 0,
Comments - 0
20:53 by 惑年, ... 阅读,
1.编写一个class继承Application
public class AppClose extends Application {
&&& private List&Activity& mainActivity = new ArrayList&Activity&();
&&& public List&Activity& MainActivity() {
&&&&&&&&&&& return mainA
&&& public void addActivity(Activity act) {
&&&&&&&&&&& mainActivity.add(act);
&&& public void finishAll() {
&&&&&&&&&&& for (Activity act : mainActivity) {
&&&&&&&&&&&&&&&&&&& if (!act.isFinishing()) {
&&&&&&&&&&&&&&&&&&&&&&&&&&& act.finish();
&&&&&&&&&&&&&&&&&&& }
&&&&&&&&&&& }
&&&&&&&&&&& mainActivity =
2.在Activity 中的oncreate方法中添加
&& &AppClose appState = (AppClose)this.getApplication();
&&&&&&& appState.addActivity(this);
&&&&&& // setContentView(R.layout.main);
3.//设定点击事件
button.setonclick....(){
AppClose appState = (AppClose)getApplicationContext();
&&&&&&&&&&&&&&&& appState.finishAll();
4.在注册清单文件中
给application添加属性& android:name=".AppClose"没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!后使用快捷导航没有帐号?
手机号码,快捷登录
教你如何一键退出USB设备
  这是一个简单的电脑操作小技巧,却是非常实用,特别是如果你经常利用闪存拷贝文件或者连接手机拷贝歌曲,那么这个技巧就显得非常本酷了,那么如何做到一键退出USB设备呢?
  一般情况下,当插入闪存或其他可移动USB存储设备时,在系统托盘区会显示出一个绿色的弹出图标,以便让我们安全卸载USB设备。而当我们完成操作,要安全删除该设备时,最简单的方法是用鼠标左键点击这个绿色的图标,然后选择安全删除。不过可能你还不知道,安全删除USB设备,还可以做到一键删除!
  在任意位置新建一个快捷方式,在弹出的“创建快捷方式”向导窗口的“请键入项目的位置”文本框中输入“rundll32.exe shell32.dll,Control_RunDLL hotplug.dll”,然后点击“下一步”。在“键入该快捷方式的名称”文本框中输入“删除USB设备”或其他名称,点击“完成”按钮。
  接下来,我们给这个快捷方式定义一个快捷键,以实现一键打开。鼠标右键点击“删除USB设备”快捷方式并选择“属性”,在弹出来的属性窗口中切换到“快捷方式”选项卡,在“快捷键”文本框中按下需使用的快捷键,例如“Ctrl+Alt+X”,设定完成后点击确定。这样,以后需要卸载USB设备时只要按下此快捷键就可以轻松完成了!
width:100%">
学习咯!!!!
width:100%">
楼主相关帖子
最火的业界新闻
努比亚Z18曝光:“美人尖”设计 屏占喜人Zip 文件覆盖漏洞曝光,Java、.NET、Go 生小米A2现身GeekBench:搭载骁龙660死磕手机业务?联想走上小米的性价比之路英特尔展示双屏概念个人电脑Tiger RapidsUnihertz Atom - 坚固耐用的智能机 还可在我国固定、移动宽带普及率双双超过2020年末余承东:华为GPU Turbo技术相当于汽车增加黄仁勋:下一代GeForce游戏显卡还早着呢!联想PC困境:惠普已五个季度领先
最新发布的帖子
炫酷的硬件Show
比小更小,Mini-STX装机华擎X99E-ITX + 银欣ML06 装机记最强双路泰坦硬管水冷 制作流程银欣FT02,双路E5工作站迟到的定制机箱小钢炮清理灰尘乔思伯UMX1 Plus,小巧的家用综合主机分体水冷第二弹-Inwin 805 infinity第一次DIY硬管水冷~~樱桃MX6.0 青轴 机械键盘 开箱挑战极限,10.2L小钢炮装机秀
网友热评的帖子
有趣的美图分享
杜杜的高考广告这排版简洁明了啊高考加油条条大路通罗马,而有人就出生在罗马错过的,最让人遗憾看着有点懵倒车惊魂狗屎行情妈妈不让我和二哈一起玩老四样你还记得吗?
关注官方微信
旗下的IT类专业技术站点
Powered by
请勿发布违反国家法律法规的内容,会员观点不代表本站立场
07:45, Processed in 0.154435 second(s), 35 queries.

我要回帖

更多关于 一键退出 的文章

 

随机推荐