【发布时间】:2013-08-19 11:02:11
【问题描述】:
我正在开发我的第一个 android 应用程序,它的作用是它有一个活动,在登录后启动一个服务,该服务会在一段时间后或每当用户位置发生变化时将用户位置 ping 到服务器。现在对于从服务到我正在使用 BroadcastReceiver 的活动的通信。
将位置记录到服务器后,服务会广播一条消息,我的活动接收到该消息并相应地更新 UI。现在一切都很好,但是当我从后台删除我的活动而我的服务仍在后台运行时,会发生什么情况是,每当服务在服务器上记录位置并广播消息时,它就会崩溃并显示一条消息在屏幕上显示您的应用程序已停止。
我认为 android 广播系统希望我的活动处于活动状态以接收广播,当它找不到它时,它会崩溃服务。
我想要的是,如果我的活动在附近,它将接收广播,但如果不是,则应该忽略广播。它不应该使我的服务崩溃。
我按照正确的步骤在 onResume() 中注册服务并在 onPause() 中取消注册。此外,我正在动态注册服务,而不是在清单中。
【问题讨论】:
标签: android broadcastreceiver broadcast