我创建了一个Android应用程序,现在需要每6分钟上传纬度和经度。这需要在登录后开始,在关闭应用程序或退出时结束,并在手机进入空闲模式或访问其他应用程序时保持运行。
Google建议使用以下选项;
这两个选项中哪一个更好?还有其他选择吗?
答案 0 :(得分:1)
首先,你肯定需要一个Service
。 Activity
s不能被依赖,因为一旦暂停,(例如访问了另一个应用),绝对不能保证即使onDestroy()
被调用也不会被中止。
AlarmManager
是触发您需要的6分钟轮询的最可靠方式,因为即使手机长时间睡眠也会执行此操作。使用它来触发您的服务(可能在6分钟的间歇期间停止)。这是我所知道的唯一最可靠的选择。
TimerTask
,Service
或流程已结束, Activity
将无效。
答案 1 :(得分:0)
你必须创建一个主活动,在其中调用ui线程上的locationmanager,它会让你在你的位置改变lat-long并在注销时删除所有位置管理器的更新