chr*_*ris 3 android android-service
我需要创建一个活动来启动监视用户位置的服务,并且在某个区域内允许调用Activity更新其视图以通知用户.
由于有几种不同的方式来处理服务,我有点困惑的是哪一种对我的情况是正确的.
使用startService()和stopService()方法:从我的理解,我不能直接回到起始活动.在谷歌文档中有一个示例显示如何通过PendingIntent将BroadcastReceiver传递给服务并调用它,但我不认为允许我更新正在运行的活动的视图...或者它会吗?
绑定服务:从文档看来,这将允许服务和活动之间的双向通信,但也提到绑定服务不会无限期地在后台运行.现在我不需要甚至不想让服务无限期地运行,但在最糟糕的情况下,我可能需要它在bg中运行至少一两个小时而不会被杀死.
第三个(可能不是那么好)选项:在活动的线程中运行位置服务,这将使实时视图更新变得容易,然后在onPause事件中,停止活动中的位置服务并将其交给服务通过startService()并使用通知服务在输入定义的区域时提醒用户.
任何建议将不胜感激.
您可以拥有一个既受约束又通过启动的服务startService().使用ServiceConnection你可以进行双向通信,使用startService()/stopService()你可以控制它的生命周期.
来自android站点的生命周期图像真的很好地解释了它:

通过绑定和启动服务,您将获得可以无限期运行的服务.只有满足以下两个条件时,服务才会停止:
它需要更多的维护,但我发现这是最合理的选择.
| 归档时间: |
|
| 查看次数: |
3971 次 |
| 最近记录: |