一 : Android退出应用最优雅的方式
我们先来看看几种常见的退出方法(不优雅的方式)
一、容器式
建立一个全局容器,把所有的Activity存储起来,退出时循环遍历finish所有Activity
这种方法比较简单, 但是可以看到activityStack持有这Activity的强引用,也就是说当某个Activity异常退出时,activityStack没有即使释放掉引用,就会导致内存问题,接下来我们看一种类似的方式,但是会稍微优雅一点点
二、广播式
通过在BaseActivity中注册一个广播,当退出时发送一个广播,finish退出
三、进程式
通过直接杀死当前应用的进程来结束应用,简单粗暴,而且有(wu)效!
这三种都能达到同样的效果,但是在模拟器上都会弹出 Unfortunately , XXX has stopped 消息提示框,但确实能退出应用。部分真机直接失效,只能finish当前Activity(比如我手上这台小米note,国产的几款ROM fw层改动太多,使用这种方式需慎重)
四、 RS优雅式
什么是RS式呢?即Receiver+singleTask 。我们知道Activity有四种加载模式,而singleTask就是其中的一种,使用这个模式之后,当startActivity时,它先会在当前栈中查询是否存在Activity的实例,如果存在,则将其至于栈顶,并将其之上的所有Activity移除栈。我们打开一个app,首先是一个splash页面,然后会finish掉splash页面。跳转到主页。然后会在主页进行N次的跳转,期间会产生数量不定的Activity,有的被销毁,有的驻留在栈中,但是栈底永远是我们的HomeActivity。这样就让问题变得简单很多了。我们只需两步操作即可优雅的实现app的退出。
1、在HomeActivity注册一个退出广播,和第二个广播式一样,但是这里只需要在HomeActivity一个页面注册即可。
2、设置HomeActivity的启动模式为singleTask。
当我们需要退出的时候只需要startActivity(this,HomeActivity,class), 再发送一个退出广播。上面代码首先会把栈中HomeActivity之上的所有Activity移除出栈,然后接到广播finish自己。一切OK ! 没有弹框,不用考虑机型Rom适配。不会有内存问题,就是那么的优雅,简单!
五、SingleTask改版式
和一些小伙交流之后,很多小伙伴说注册广播略显麻烦,在楼下的小伙伴提出了一种更简单的方式,思路也很简单,
1、设置MainActivity的加载模式为singleTask
2、重写MainActivity中的onNewIntent方法
3、需要退出时在Intent中添加退出的tag
由于很多小伙伴对源码需求比较热切,我们这里就直接以代码的形式为大家讲解这种方式
第一步设置MainActivity的加载模式为singleTask
第二步重写onNewIntent()方法
第三步 退出
六、懒人式
这种方式更加简单,只需要如下两步操作
1、将MainActivity设置为singleTask
2、将退出出口放置在MainActivity
我们可以看到很多应用都是双击两次home键退出应用,就是基于这样的方式来实现的,这里在贴一下如何处理连续两次点击退出的源码private boolean mIsExit;
二 : android 完美退出应用程序。
Android程序在点击回退键时,如果只有一个activity,调用finish()方法就能退出界面,如果有多个界面,在调用该方法时,只会销毁当前的activity,显示栈顶的其它activity,换言之,就是无法退出整个应用程序。下面是一种快速的退出整个应用的方法代码:
private void showTips() {AlertDialog alertDialog = new AlertDialog.Builder(this).setTitle("提醒").setMessage("是否退出程序").setPositiveButton("确定", new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog, int which) {Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); android.os.Process.killProcess(android.os.Process.myPid());}}).setNegativeButton("取消",new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog, int which) {return;}}).create(); // 创建对话框alertDialog.show(); // 显示对话框}
@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {// TODO Auto-generated method stubif (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {showTips();return false;}return super.onKeyDown(keyCode, event);}
三 : 我的电脑开机时总是提示:Kxeserv.exe-致命的应用程序退?
致命的应用程序退出
我的开机时总是提示: Kxeserv.exe-致命的应用程序退出 It failed to KxEInitializeBase with
error:Ox 这是怎么回事啊??急!急!急!!!!
金山毒霸自己的问题,将其卸载,重新下载安装最新版本的,或者换是换个杀毒软件!
四 : 退堂鼓:退堂鼓-出处,退堂鼓-戏曲中的应用
原指封建官吏退堂时打鼓。现在比喻跟人共同做事中途退缩。
退堂鼓_退堂鼓 -出处
元·关汉卿《窦娥冤》第二折:“左右,打散堂鼓,将马来,回私宅去也。”
退堂鼓_退堂鼓 -戏曲中的应用
戏曲中,退堂鼓与升堂鼓相对。
升堂鼓、退堂鼓是2种点。由堂鼓和小锣分奏合成,堂鼓为令。升堂鼓用于府县官员坐衙之前,退堂鼓用于公毕之后。升堂鼓,以三击为令,旧有大字:“奉王命”。退堂鼓以四击为令,大字是:“谢主隆恩”。这些大字只是为鼓令找个依据,亦好区别升、退堂。
此点子可分两截使用:头一小节多用于监斩官来到刑场之前,意味着行刑时刻未到,它是以鼓打两击为令,大锣打帮,连打二遍,名曰催命鼓。第二小节鼓重击为令,锣打光并掐音,意味着斩刑已施,给观众以人头落地之感,第二小节不单独使用,它与第一小节合并为监斩鼓。
鼓为令,锣打帮拟更鼓声,名曰更锣。一更、三更多由鼓、锣分着打,三、四、五更既可分着打,又可与堂鼓齐奏,四、五更以齐奏为多用。舞台上表现时间为深夜时,以堂鼓独奏,称为更鼓。更鼓用于表现人物在夜间活动的舞蹈动做中,称为哑边,这是根据舞蹈术语走边而得名.打罢五更之后再起更鼓时,则以击打鼓帮作终止,称其为亮更,表示天明。
以上所谈升堂鼓、退堂鼓、监斩鼓、更锣,是传统戏中留传下来的特殊形式的“单击”。
退堂鼓_退堂鼓 -参考资料
[1] 百度百科
[2] 京剧课堂 http://www.shidaiguocui.com/class_show.php?id=926
五 : 苹果Mac系统中的应用程序怎么强制退出?
当应用程序响应速度过慢时,可以使用强制退出关闭窗口
Windows 用户可以使用 CTRL+ALT+DELETE 强制关闭窗口,但 OS X Yosemite 的操作系统是非常稳定的,虽然有时候在应用程序停止工作的时候,用户也需要进行强制退出。在此我们会介绍几种强制关闭应用程序的方法,可以使用 强制退出 命令,也可直接重启电脑。
方法一:使用Dock 菜单栏里面的强制退出键
在屏幕下方进入 Dock 菜单栏,找到需要关闭的应用程序的图标,按住鼠标右键(或者 按住 ctrl时点击鼠标)弹出菜单栏,点击最后一个 退出 选项,然后一般应用程序就会关闭了,如果没有,再进行第二次操作,但是记住在菜单栏弹出来的时候按住 alt键,退出 选项会变成 强制退出,点击强制退出,便能立即强制关闭应用程序了。
方法二:使用强制退出键
现在我们来介绍另外两种使用 强制退出 命令的方法,第一种方法:点击屏幕左上方的苹果图标,下拉列表选择最后一个 强制退出 选项。第二种方法:按住 command+alt+esc 三个按键,在弹出的窗口中会显示正在运行的所有应用程序,无响应的 app 后会显示 无响应,选中要关闭的应用程序,点击窗口下方的 强制退出,然后重新运行该程序检测其是否能正常工作
方法三:应用程序无响应又不能进行其他操作时怎么办?
在某些情况下,当应用程序无反应,且不能离开该程序进行上述的强制退出时,按住 cmd+alt+shift+esc 四个键,关闭 OS X 程序。
方法四:使用 Activity Monitor
想要找出系统运行出错的地方,可以使用内置的活动监视器,点击进入 Finder,在导航栏内找到 应用程序>实用工具>活动监测器,打开活动监测器,所有正在运行的应用程序都会显示出来,包括每个软件所占的 CPU,内存,网络等数据信息,随便双击一个应用程序,都会弹出一个独立窗口,显示出当前应用程序的更多相关信息以及目前状态,用户可选择 取样,便会获得此程序在一段时间内的活动报告,但这个程序太过专业化,可能很多用户会看不明白,所以,接下来再介绍一种更实用的强制退出的方法。
方法五:当计算机系统失控的时候怎么处理?
在有些情况下,因为一个应用程序的故障可能会导致整个计算机系统失控,但是这种情况出现的几率也是比较小的,对于大多数用户来说,解决这种问题的唯一办法 可能是选择电源按钮了。按下电源按钮后屏幕上通常都会弹出消息询问是否确认强制关机,然后系统会自动进入休眠状态,如果长按电源按钮,将会弹出一个窗口显 示出“ 重启,休眠,关机”几个选项。但是如果在系统严重崩溃的情况下,这些选项可能不会显示出来,所以最后的一个解决方案就是长按电源按钮直到电脑完全断电,这 个方法虽然能让用户重启恢复 Mac,但是由于电脑的突然终止运行可能会造成某些数据的丢失,在这种情况下,这也是唯一使电脑恢复工作的方法了。
本文标题:致命的应用程序退出-Android退出应用最优雅的方式61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1