0

我只是在阅读使用服务来保持应用程序在后台运行的内容。

有几件事对我来说不是很清楚。

1:服务启动后,当主应用程序被Android销毁时,它是否还活着?(我知道 OnPause() 和 OnStop() 确实如此)

2:如果在内存中为服务声明了任何内容,有没有办法从我的应用程序中访问它?(EG 服务只记录 GPS 以查看您是在移动还是静止不动。从主应用程序中,我想查看在主应用程序处于非活动状态时每个记录了多少)

我知道这些是相当普遍的问题,我只是在阅读这部分 Android 编程,并希望在不久的将来修改一个程序。所以我还没有代码可以解决这个问题

谢谢,

BBBwex

4

1 回答 1

1

服务启动后,当主应用程序被 Android 销毁时,它是否仍然存在?

应用程序不会被破坏。活动被破坏。应用程序的进程终止。

服务将在此过程中运行,直到:

  • 没有更多的绑定连接(即 via bindService())和

  • 如果服务以 启动startService(),则以stopService()或停止stopSelf()

当然,一旦进程终止,服务(以及其他一切)就消失了。

如果在内存中为服务声明了任何内容,有没有办法从我的应用程序中访问它?

您的服务是您的应用程序的一部分。我在这里假设“应用程序”是指“活动”。

您的服务可以通过多种方式以活动可以监控和使用的方式发布信息,包括:

  • 服务将数据写入 a ContentProvider,后者通过 aLoader或更新活动ContentObserver

  • LocalBroadcastManager服务通过第三方消息总线(如OttoMessenger绑定到 aHandler等)向 Activity 发送消息。

  • 服务将数据缓存存储在静态数据成员中,活动读取(或可能轮询)

  • SharedPreferences该活动只是根据需要从服务使用的任何持久数据存储(例如)中读取数据

  • 等等。

于 2013-06-26T12:07:43.227 回答