我只是在阅读使用服务以在后台保持应用程序活着。
我不太清楚一些事情。
1:一旦服务启动,当主应用程序被Android销毁时,它是否仍然存活? (我知道它适用于OnPause()和OnStop())
2:如果在服务器的内存中声明了什么,有没有办法从我的应用程序访问它? (EG服务只是记录GPS,看看你是在移动还是静止不动。从主应用程序我想看看在主要应用程序处于非活动状态时记录了多少)
我知道这些是相当普遍的问题,我只是阅读Android编程的这一部分,并希望在不久的将来修改一个程序。所以我没有代码可以解决这个问题
谢谢,
BBBwex
答案 0 :(得分:1)
一旦服务启动,主应用程序被Android销毁后它会保持活力吗?
应用程序不会被破坏。活动被摧毁。应用已终止其流程。
服务将在此过程中运行,直到:
没有更多绑定连接(即通过bindService()
)和
如果服务是以startService()
启动的,则会因stopService()
或stopSelf()
当然,一旦流程终止,服务(以及其他所有内容)就会消失。
如果在服务器的内存中声明了什么,有没有办法从我的应用程序访问它?
您的服务是您应用的一部分。我将在这里假设“app”你的意思是“活动”。
您的服务有多种方式以活动可以监控和使用的方式发布信息,包括:
服务将数据写入ContentProvider
,通过Loader
或ContentObserver
服务通过LocalBroadcastManager
,第三方消息总线(如Otto,Messenger
绑定到Handler
等向活动发送消息。
服务将数据缓存存储在静态数据成员中,活动读取(或可能是民意调查)
活动只是根据需要从服务使用的任何持久性数据存储中读取数据(例如,SharedPreferences
)
等