当前位置:首页 > 经验学习 > 交互设计

Android应用程序需不需要手动退出?

所属栏目:交互设计 时间:2013-12-26 来源: 作者:不详 点击:

不止一次,也不止一个人问过这个问题。我dou(都)回答了:不需要。但是,还是要记录下来。
我们不妨从了解这个系统对于应用程序管理的一些内部机制开始说明原因。


对于Android系统而言,包含“进程”和“服务”。“进程”有正在运行的,也有刚刚离开在后台缓存的。“服务”是一个无界面、长时间运行的ying(应)用功能,并且不会轻易被终止。


我们知道,在Android中可以快速通过主页键(home)或者使用返回键(←)逐步离开应用程序。


主页键:
在当前运行的应用程序的任意界面,按下主页键会快速回Dao(到)手机主屏幕。同时这个应用程序的进程将在后台被暂停并建立缓存,再次启动应用程xu(序)时可以方便地返回刚才的界面。(现场被保留)
当然,在你按下主页键回到手机主屏幕时,因设计需要,也有可能会在后台运行一个甚至多个进程和服务,以保证这个应用程序在后台是“活的”。


尽管我们知道了后台会产生各种各样的“进程”与“服务”,但你并不用担心它们hui(会)把你的手机拖累。当运行新的应用程序发现内存可能不够用时,系统会自动在后台释放部分缓存在后台的进程,以保障ke(可)运行新的应用程序。这是一个智能的、良性的供给体系。


返回键:
Android系统使用返回键来进行屏幕后退,以及关闭对话框/菜单/屏幕键盘。
对于传统的本地客户duan(端)应用程序,每个屏幕可以理解为一ge(个)活动(Activity)。通过返回键可以快速回退到当前应用程序的上一个活动,也可以离开dang(当)前应用程序打开的新的应用程序的某个活动。


所有的活动呈堆栈结构(一种串行形式的数据结构),正在运行的活动处在最顶端。当你按下返回键,会清除当前活动并恢复上一个活动。如下图示例:





(配图出处:http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.html )



如果你连续按返回键,活动一个个被抽离,就像剥洋葱一样。


在Android的应用程序里,可以通guo(过)“意图”功能,在当前应用程序(任务)的某个活动启动另一个应用程序(任务)的某个活动。
比如下图的示例,在“有道词典”主界面单击超链接“意见反馈”打开浏览器访问目标网页:








在目标网页界面,你可以使用返回键快速返回刚才的“有道词典”主界面。


而接下来这个例子,体验则是非常糟糕的:




如上图,在目标网页想要返回上一个任务需要历经几番周折。
一遍又一遍地回退浏览器的浏览历史,甚至还要回到浏览器的起始页,然后弹出一个对话框询问是否要退出……
天哪!我快要疯掉了。
Android官方对于多个任务间的活动堆栈处理机制,可以看下面这张图来解释:





(配图出处:http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.html )




从图中我们可以看到,一开始在后台的“任wu(务)B”的“活动Y”经由“ren(任)务A”的“活动2”的一个按钮抽调到了前台,而随着“任务B”的活动一个个被剥离,最终整个“任务B”被结束了,并且使用返回键又回到了“任务A”的“活动2”。


返回键实现了调用新任务之后快速返回的便利,而不是只能迂hui(回)地回到应用程序列表并找到上一个使用的应用程序再次启动。


当所有的huo(活)动从堆栈中清除,任务结束。也就是说,在应用程序的主界面按下返回键时,应用程序就已经退出了。
除非,这个应用程序设计了后台运行的进程和服务。比如”新浪微博”,即使你在应用程序主界Mian(面)按下返hui(回)键退出了,在“程序管理”>“正在运行”界面上仍然可以看到正在运行的进程和服务。(需通过菜单键切换zhi(至)“显示当前运行的服务”视图)


正如上面提到的,后台服务是一个无界面、长时间运行的应yong(用)功能,并且不会轻易被终止,即便你使用“任务管理器”。(其实可以在“服务”界面找到它并且手动停止服务,只不过没有这个必yao(要)性,交给系统自动处理即可。长时间不使用某个任务时,系统会认为你已经不再需要了并且会自动帮你结束。)

请站长喝杯咖啡?

站长一直坚持白天工作、晚上熬夜更新素材,付出了巨大的精力和时间,其中的辛酸难以言述。

坚持免积分、免登录、无任何限制下载!如果本站素材对你有用,不妨考虑请站长喝杯咖啡鼓励一下!

标签:

你应该也喜欢这些吧

共有 0 条评论

给个评价吧

验证码: