我有定期的服務,我開始每5分鐘使用一次警報。 Service實現LocationListener以獲取GPS修復並將其保存到SqLite數據庫中。LocationManager在服務 - 需要停止,如果1分鐘內沒有修復
我給服務1分鐘以獲得最佳修復可能。如果我在此之前獲得準確性 - 甚至更好。
所有的工作正常。我也有代碼,檢查是否禁用GPS,所以我退出服務。
我想要做的是:如果1分鐘內沒有修復 - 我想退出服務。目前,由於大多數邏輯(時間檢查等)在onLocationChanged - 我從來沒有機會這樣做,因爲我從來沒有位置。
是否有計時器或類似的東西,我可以使用?我是Java新手,例子會很好。我看到它是這樣的:在開始時,我使用回調創建了計時器,在此回調函數中,我將清理並關閉。我不確定是否會有可能onLocationChanged運行的影響?
我可以禁用計時器,只要我onLocationChanged?
我把它放在我的類的onCreate,我得到錯誤: <匿名aaaGPSTrackingService $ 1>不是抽象和 – katit 2011-04-11 17:02:32
不重寫抽象方法的run()哎呀,那應該是'public void run()',當然沒有摘要。抱歉。順便說一下,'Handler'使用當前線程的'MessageQueue',與'Timer'相反,它創建了一個單獨的線程。你的旅費可能會改變。 – onitake 2011-04-13 10:27:04
謝謝!這效果更好..我剛剛被Timer咬了,而且它運行在不同的線程上。我在服務中有一些終止代碼,並且只有在定時器上調用時纔會出現「looper」錯誤。很高興我回頭看 - 現在有道理。 – katit 2011-05-04 03:23:12