我有一个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监测 –