如果我错了,请纠正我:
1) A Service用于在后台执行长时间任务。服务在 UI 线程中运行,因此如果任务很长,它可能会冻结我们的 UI。只要我们告诉服务停止,服务就会继续独立于应用程序运行。
2) An 意向服务另一方面用于在单独的线程中执行短任务。当它完成任务时它会自动终止。
我必须做什么:
1)每5秒检查一次位置
2) 如果位置发生变化,将其发送到服务器并使用新的位置值更新 UI
让我困惑的是:
我应该使用Service or 意向服务因为我需要在 5 秒后连续执行此操作,并且不希望我的 UI 线程变得无响应。
该应用程序将用于跟踪车辆。
我不会使用IntentService
因为一旦作业完成,它就会自行完成,并且您需要在 5 秒后再次重新安排它。要重新安排它,您需要一些复杂的外部Timer
与应用程序关联的机制Context
或者,更糟糕的是,使用AlarmManager
这会疯狂地消耗你的电池。
我会使用带有Timer
内部用于调度TimerTasks
每 5 秒一次,并且每次TimerTask
无论如何,在工作线程上执行我都会获得位置并发出 Http 请求。
只是不要忘记cancel
服务上的计时器onDestroy
方法,否则你会泄漏Service
实例。
EDIT我刚刚注意到这个and Update the UI with new location values
...继续使用Service
,但要么使用AsyncTask
用于发送请求doInBackground
然后发送广播消息onPostExecute
,要么继续使用相同的TimerTask
机制但使用Handler
它是用 UI Looper 实例化的,并在该处理程序上发出 UI 更新请求。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)