我有一個RecyclerView內顯示的任務列表。 對於每一個任務我介紹含有活動:Android服務交互
- 播放按鈕,點擊後
- 一個完成按鈕說任務完成並停止綁定到活動的服務,顯示天文臺表。
- 各種信息
用戶可以停止任務後恢復,並在同一時間推出的各種任務。
我需要實施一項服務,以保證每個天文臺在任務的生命週期中在後臺運行。
我遵循的準則在這裏:https://developer.android.com/guide/components/services.html
如何創建任務的每一個獨特的服務,並顯示計時錶背面(與經過時間)時,由用戶選擇的先前任務。 什麼是逐秒更新活動的正確方法?
public class TaskService extends Service {
public static final String TAG = "TASK SERVICE";
public static final String ACTION_TIMER = TaskService.class.getName() + "TIMER";
private IBinder mBinderTask = new TimerTaskBinder();
private Chronometer mChronometer;
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d(TAG, "onStartCommande: ");
mChronometer = new Chronometer(this);
mChronometer.setBase(SystemClock.elapsedRealtime());
mChronometer.start();
return START_STICKY; // Will be explicity started and stopped
}
public String getTimestamp() {
long elapsedMillis = SystemClock.elapsedRealtime() - mChronometer.getBase();
int hours = (int) (elapsedMillis/3600000);
int minutes = (int) (elapsedMillis - hours * 3600000)/60000;
int seconds = (int) (elapsedMillis - hours * 3600000 - minutes * 60000)/1000;
int millis = (int) (elapsedMillis - hours * 3600000 - minutes * 60000 - seconds * 1000);
return hours + ":" + minutes + ":" + seconds + ":" + millis;
}
@Override
public IBinder onBind(Intent intent) {
Log.d(TAG, "onBind: ");
return mBinderTask;
}
public class TimerTaskBinder extends Binder {
public TaskService getService() {
return TaskService.this;
}
}
@Override
public void onDestroy() {
super.onDestroy();
Log.d(TAG, "onDestroy: ");
}
}
感謝
當我理解如何與服務交互時,我打算收集用戶位置和移動等其他數據 –
當您說移動時,是指用戶活動(走路,駕駛等)? –
是GPS監測 –