我可以在Android上打开一个应用程序吗?

问题描述:

我对Android多任务并不了解,但我想在尝试我的项目之前提出这个问题。我可以在Android上打开一个应用程序吗?

有没有一种方法,我可以编程的Android应用程序(针对Android 4.0以上版本只)永远是开放的背景下,并保持所有的网络连接活着的UI“绘制”所以,当我打开它,它总是立即打开,即使平板电脑正在做其他事情,我也可以立即使用它?

谢谢。

+0

如果你问我,这是非常糟糕的做法。你应该保存状态并加载它。 – dierre 2012-07-08 08:49:24

+0

U必须使用服务 – Gorets 2012-07-08 08:52:16

最有可能的是,你想创建一个foreground service。前台服务是用户知道的一项服务,如果Android内存不足,则不会将其视为杀人对象。它与一个持久的通知栏相关联,用户可以点击以展示一个活动。为确保网络连接没有关闭,您的服务应该获得wake lock

但是,请记住,一个可能会导致电池死亡的长时间运行过程被认为是一种不好的做法,您应该避免这样做,除非您真的有很强的理由去做。

不,Android不是这样构建的。当操作系统需要更多资源时,它总是可以在后台终止服务/活动。

您可以使始终运行的服务(粘性服务)在资源再次可用时因资源问题而终止时重新启动。 使用激活你不能这样做。但可能发生的情况是,您的活动“暂停”并仍在后台,因此可以很快“恢复”。但是,Android又可以轻松杀死资源。

+0

请注意,如果您遵循这一点并使用服务,您仍然需要针对您提到的用户界面(对于OP,而不是@PoweRoy)提供一个活动, – 2012-07-08 08:54:09

你不可能有一个应用程序总是在后台运行,除非你在固件级别修改Android并构建你自己的版本。当Android需要更多资源来运行当前位于前台的应用程序时,Android会杀死其他应用程序。

但是,有可能通过保存数据和它的当前状态在onPause()中处理此问题,并在onResume()中恢复相同。