继续学习Android,我读了以下内容:
问题:用户是否可以选择终止应用程序
除非我们加入一个菜单选项来杀死它?如果没有这样的选择,
用户如何终止应用程序回答:(Romain Guy):用户没有,系统会自动处理。这就是活动生命周期(特别是暂停/停止/恢复)的目的。无论您做什么,都不要使用“退出”或“退出”应用程序按钮。这对于Android的应用程序模型来说是无用的。这也与核心应用程序的工作方式相反
呵呵,在Android世界里,我每走一步都会遇到一些问题=(
显然,你不能退出Android中的应用程序(但Android系统可以在任何时候完全摧毁你的应用程序)。这是怎么回事?我开始认为不可能编写一个“正常应用程序”的应用程序-当用户决定退出应用程序时,他/她可以退出应用程序。这不应该依赖操作系统来完成
我试图创建的应用程序不是Android Market的应用程序,也不是一个供公众“广泛使用”的应用程序,而是一个将在非常狭窄的商业领域使用的商业应用程序
事实上,我非常期待Android平台的开发,因为它解决了Windows Mobile和.NET中存在的许多问题。然而,上周对我来说有点令人厌烦……我希望我不必放弃Android,但它现在看起来不是很好=(
有没有办法让我真正退出应用程序
这最终会涉及到你的问题,但我首先想谈谈你在对撰写本文时已经给出的各种答案的各种评论中提出的一些问题。我无意改变你的想法——相反,这些是为将来阅读本文的其他人准备的
关键是我不能允许
Android来确定我的应用程序何时启动
就要被终止了,那一定是
用户的选择
数百万人对环境根据需要关闭应用程序的模式非常满意。这些用户根本不想“终止”Android应用程序,就像他们想“终止”网页或“终止”恒温器一样
iPhone用户也是如此,因为按下iPhone按钮并不一定“感觉”到应用程序被终止了,因为许多iPhone应用程序都在用户停止的地方启动,即使应用程序真的被关闭了(因为iPhone目前一次只允许一个第三方应用程序)
正如我上面所说的,有很多
我的应用程序中正在发生的事情(数据
推送到设备,列出任务
应该一直在那里等)
我不知道“列出应该始终存在的任务”是什么意思,但“数据被推送到设备”是一个令人愉快的虚构,在任何情况下都不应该由活动完成。使用计划任务(通过AlarmManager)更新数据以获得最大的可靠性
我们的用户登录后无法执行此操作
每次他们接到电话
安卓决定终止该应用程序
有很多iPhone和Android应用程序可以处理这个问题。通常,这是因为它们保留了登录凭据,而不是每次都强制用户手动登录
例如,我们要检查更新
退出应用程序时
这在任何操作系统上都是错误的。据您所知,您的应用程序“退出”的原因是因为操作系统正在关闭,然后您的更新过程将在中途失败。通常情况下,这不是一件好事。启动时检查更新或完全异步地检查更新(例如,通过计划任务),从不在出口处
一些评论认为
“后退”按钮不会立即终止应用程序
全部(见我上面问题中的链接)
按下后退按钮不会“终止应用程序”。它会完成用户按下后退按钮时屏幕上显示的活动
只有当
用户想要终止它-决不
如果你不会写字,还有别的方法吗
在安卓系统中表现类似的应用程序,
那么我认为Android不能被使用
用于编写真正的应用程序=(
如果我正确理解了Web应用程序或WebOS的模型(还没有机会玩),那么它们也不能。在所有这些情况下,用户不会“终止”任何东西——他们只是离开。iPhone有点不同,因为它现在一次只允许运行一件事(只有少数例外),因此,离开意味着应用程序会立即终止
有没有办法让我真正戒烟
申请表
正如其他人告诉您的,用户(通过BACK)或您的代码(通过finish())可以关闭您当前正在运行的活动。对于正确编写的应用程序,用户通常不需要任何其他东西,就像他们需要使用Web应用程序的“退出”选项一样
根据定义,没有两个应用程序环境是相同的。这意味着随着新环境的出现和其他环境的消失,您可以看到环境中的趋势
例如,试图消除“文件”概念的运动正在兴起。大多数Web应用程序不强迫用户想到文件。iPhone应用程序通常不强迫用户想到文件。Android应用程序通常不强迫用户想到文件。等等
类似地,有越来越多的运动试图消除“终止”应用程序的概念。大多数Web应用程序不会强制用户注销,而是在一段时间不活动后隐式注销用户。Android也是如此,iPhone(可能还有WebOS)也是如此
这需要更多地强调应用程序设计,关注业务目标,而不是坚持与以前的应用程序环境绑定的实现模型。没有时间或倾向于这样做的开发人员会对打破现有心智模型的新环境感到沮丧。这不是两种环境的错但是,这并不是一座山的错,因为风暴在它周围流动,而不是穿过它
例如,一些开发环境,如Hypercard和Smalltalk,将应用程序和开发工具混合在一个设置中。除了应用程序的语言扩展(例如Excel中的VBA、AutoCAD中的Lisp)之外,这个概念没有受到太多关注。因此,提出心智模型并假定应用程序本身中存在开发工具的开发人员,要么必须更改其模型,要么将自己限制在其模型适用的环境中
所以,当你写作时:
和其他乱七八糟的东西一起我
发现了,我觉得,
我们的Android应用程序不会
发生
同样,我建议您不要尝试将应用程序移植到Web,因为您在Android上报告的一些问题也会在Web应用程序中发现(例如,没有“终止”)。或者,相反,如果有一天你将你的应用程序移植到Web上,你可能会发现Web应用程序的流可能更适合Android,你可以在那时重新访问Android端口