我正在创建一个可执行以下操作的应用:
如果邮件带有消息字。它需要通过GPS功能开始定位手机。之后,它必须向用户显示结果。
我已经让它使用广播接收器来获取消息了。之后是启动一个Activity。如果没有更新用户界面。
我有两个问题:
1)如果屏幕旋转,所有变量都设置为零......那么可以通过onPause()
保存变量来解决这个问题,并在onResume()
读取这些值
2)如果用户使用后退按钮...线程被取消。
实际上我希望用户无法取消GPS动作。
为此使用Intentservice是一个好主意吗?!
-message进来
- BroadcastReceiver
获取消息并启动intentService
- 如果处理完成...我可以用结果开始一个活动(并且在处理完成后服务自动关闭?!
是否有更好的方法来解决问题?
答案 0 :(得分:1)
您当然可以而且应该在后台使用IntentService
进行长时间运行。但是,如果用户退出您的活动,他们很可能出于某种原因这样做,并且弹出一个他们可能不再关心的结果的活动,可能不是一个好的策略。您可以缓存结果,并在用户下次打开活动时显示结果。