1

我的应用程序包含一个创建服务的活动。只要应用程序正在运行,我希望该服务继续运行。我知道:

  1. 不能保证,因为 Android 系统可以在内存不足的情况下以及活动在后台时终止活动。
  2. 该服务可以被系统停止(和终止)。
  3. 如果我将服务绑定到活动,则活动将在服务停止或启动时收到通知。但是,如果活动进入后台 (onStop()),服务可能会停止运行。如果我在这里错了,请纠正我。
  4. 如果我在活动的 onResume() 中绑定到服务,在 onStop() 中绑定到服务,则当我的应用程序进入后台时,服务可能会停止运行。如果我在活动的 onDestroy() 中绑定 onCreate() 和 unbind(),这是否意味着我的活动即使在后台也将继续从服务获取通知。
  5. 只要应用程序正在运行,保持服务运行并从服务到 Activity 的通知的最佳方式是什么。请注意,应用程序中只有一个活动,因此在后台发送活动意味着应用程序进入后台。

谢谢

4

4 回答 4

0

如果您将 a 绑定Service到您的Activity. 它只是意味着只要您的活动正在运行,您就需要服务来运行。如果您不需要绑定活动,或者您在运行时Service不需要更新您的活动。你不能将你的绑定到你的. 在这种情况下,对于您所做的不同操作,您可以使用. 比如通知用户xx下载已经完成。UIServiceServiceActivityServiceAndroid Notifications

这完全取决于您想要实现的目的Service

于 2012-07-02T14:56:25.493 回答
0

如果您可以IntentService用于您的应用程序,则可以通过Intent. 结果可以通过ResultReceiver

于 2012-07-02T15:02:42.657 回答
0

如果您将 your 绑定Service到您的 unique Activity,只要Activity没有终止或service没有解除绑定,您就可以让它活着。只需将它绑定在 上,onCreate()并在停止时让它解开activity(无需做任何事情)。

interface您可以在您的中创建一个侦听器service,您将在 中实现Activity,因此您可以将这些通知从 发送ServiceActivity。如果使用 Google 搜索,您会找到合适的示例和相关信息。

于 2012-07-02T15:03:51.383 回答
0
  1. 真的
  2. 是的,但如果我们使用 startForeground() 则更为罕见
  3. 该服务通常不会停止,直到所有活动都解除绑定。但是当最后一个有时,它会的。因此,如果您仅在 onPause if isFinishing() == true 时取消绑定,则可以防止服务在进入后台时死亡。
  4. 见 3。
  5. 我个人喜欢在 Activity 中设置一个 Handler 并从服务中向它发送消息。
于 2012-07-02T15:09:26.210 回答