我的一個活動的定期更新附近的朋友,這是從其他服務獲得的位置如何根據活動定期休息請求?
目前我使用postDelay:
private Runnable updateNearbyFriendsTask = new Runnable() {
@Override
public void run() {
list = api.getNearby(.....)
handler.postDelayed(this, UPDATE_RATE);
}
};
的問題是,postDelayed在UI線程上執行,所以這個運行的任務塊UI與互聯網連接差。
什麼是正確的方式來定期從活動的背景休息請求?我不想爲此創建服務,因爲此休息方法僅用於此活動。
編輯
目前轉而使用警報管理使用ScheduledExecutor
this.scheduledExecutor.scheduleWithFixedDelay(new UpdateNearbyFriendsTask(), 0, UPDATE_RATE, TimeUnit.MILLISECONDS);
private class UpdateNearbyFriendsTask implements Runnable() {
@Override
public void run() {
list = api.getNearby(.....)
runOnUiThread(.....)
}
};
有沒有簡單的方法將數據從服務發送到我的活動。對於服務,我必須創建廣播接收器併爲我的數據類實現parcable。你不覺得這是開銷嗎? –
如果服務是綁定服務,則可以使用IBinder向活動發送數據和從活動發送數據。有關詳細信息,請參閱綁定服務文檔。 http://developer.android.com/guide/topics/fundamentals/bound-services.html – Noel
所以你建議使用listner參數使用公共方法創建綁定服務? –