为什么Android应用程序不提供“退出”选项?

时间:2010-03-13 20:51:19

标签: android

Android开发人员指南中是否有一些内容阻止开发人员提供从应用程序本身“退出”(停止运行)应用程序的选项

我喜欢多任务处理,但除此之外我不清楚为什么:

  • 绝大多数应用程序没有自己的Exit功能,因此只能继续运行
  • 当你打开手机时,不要让你选择跑步 - 他们只是默认做

这两件事导致内存使用不断增加,并且您的设备一直在运行 ,尽管您可能只希望某些应用运行某些应用时间

我错过了什么吗?

5 个答案:

答案 0 :(得分:15)

  

Android中有什么东西吗?   disuadea的开发人员指南   开发人员提供选项   “退出”(停止运行)   从内部申请   申请本身?

是。通常不需要它,就像通常不需要重新启动Web服务器一样,因为某些使用浏览器的用户决定使用Web应用程序。

  

绝大多数应用都没有   他们自己的退出功能,因此   只是一直运行

他们不会永远奔跑。 Android会根据需要关闭。

  

不要让你选择跑步   当你打开手机 - 他们只是   默认情况下执行

那些开发者aren't paying attention to me

  

这两件事都会导致记忆   用法不断增加

一般情况下,它没有。如果您找到执行此操作的特定应用程序,请将其卸载。

  

并且您的设备正在运行   性能负担一直

一般情况下,它没有。如果您找到执行此操作的特定应用程序,请将其卸载。

此外,此问题与this one重复。

答案 1 :(得分:8)

“这两件事都会导致内存使用不断增加”

由于Android应用仅限于固定数量的RAM,因此无关紧要。释放RAM不会为其他应用程序提供更多内存。

答案 2 :(得分:1)

基本上,只要开发人员能够很好地设计应用程序,就不需要退出按钮。 Android活动在不可见时停止,其他地方需要资源,因此不再消耗资源。您可以阅读有关生命周期here

的信息

这是related question

答案 3 :(得分:1)

来自Google的Android Application Fundamentals页面:

  

关闭组件   内容提供程序仅在响应来自ContentResolver的请求时才处于活动状态。并且广播接收器仅在其响应广播消息时才是活动的。因此,无需明确关闭这些组件。

     

另一方面,活动提供用户界面。只要对话继续,他们就会与用户进行长时间的对话,并且即使在空闲时也可以保持活动状态。同样,服务也可能会保持运行很长时间。所以Android有办法以有序的方式关闭活动和服务:

     

可以通过调用finish()方法来关闭活动。一个活动可以通过调用finishActivity()来关闭另一个活动(一个用startActivityForResult()启动)。   可以通过调用stopSelf()方法或调用Context.stopService()来停止服务。   当系统不再使用时,或者必须为更多活动组件回收内存时,系统也可能会关闭组件。后面的部分,组件生命周期,更详细地讨论了这种可能性及其后果。

因此,内容提供商和广播接收器似乎永远不应该被明确关闭,因为它们在不处理特定事件时是惰性的。

至于活动,我认为有必要结束它,但在某些情况下。如果您的应用程序具有用户完成使用它的有限状态,为什么要保持活着直到GC获得它?活动管理器仍需要在用户完成任务时跟踪该活动。我最好的例子是计算器。你打开它,你有它为你解决问题,然后你关闭它。如果onCreate函数非常昂贵,那么每当用户返回你的应用程序时,onCreate一次然后onRestart会更有效,那么你可能做错了。也许我误解了Android如何处理活动,如果是这样,我总是有兴趣了解更多:)

答案 4 :(得分:-1)

这一切都回到了用户希望完全控制其运行和自动启动列表以及他们做什么和不想安装的内容的答案,例如:谷歌地图等等。没有两种方法可以做到这一点。