IcLog.d(TAG, "create new task == > " + taskEvent);
synchronized (mTaskLock) {
//判断队列里是否有同样的任务,如果有的话不用发了,
+ IcLog.d(TAG, "contains == > " + mTaskList.contains(taskEvent)+", tag = "+tag);
if (mTaskList.contains(taskEvent)) {
- IcLog.d(TAG, "task contains..." + fromByValue);
+ IcLog.d(TAG, "task contains..." + fromByValue+", tag = "+tag);
//通知正在等待执行
if (tag != null) {
dispatchWaiting(censorType, tag);
return;
}
if (taskEvent.equals(currentTask)) {
- IcLog.d(TAG, "current task running...");
+ IcLog.d(TAG, "current task running..."+", tag = "+tag);
//通知正在执行
if (tag != null) {
dispatchTaskRunning(censorType, tag);
//直接运行不需要放到队列里了
EventBus.getDefault().post(taskEvent);
} else {
- IcLog.d(TAG, "new task waiting..." + taskEvent);
+ IcLog.d(TAG, "new task waiting..." + taskEvent +", tag = "+tag);
//要放到队列里头,提示调用者正在等待执行
if (tag != null) {
dispatchWaiting(censorType, tag);
}
}
+
private void dispatchWaiting(TestTaskEvent.SensorType censorType, String tag) {
+ ICLogger.d("dispatchWaiting ..." + tag);
if (censorType == TestTaskEvent.SensorType.TEMPERATURE) {
//温度的
synchronized (mLock) {
temperatureCallbacks.finishBroadcast();
}
}
- } else if (censorType == TestTaskEvent.SensorType.HEART_RATE_AND_OXYGEN) {
+ } else if (censorType == TestTaskEvent.SensorType.HEART_RATE_AND_OXYGEN
+ || censorType == TestTaskEvent.SensorType.JUST_OXYGEN
+ || censorType == TestTaskEvent.SensorType.JUST_HEART_RATE) {
//心率的
synchronized (mLock) {
try {
* @param tag
*/
private void dispatchTaskRunning(TestTaskEvent.SensorType censorType, String tag) {
+ ICLogger.d("sensorType = "+(censorType == TestTaskEvent.SensorType.HEART_RATE_AND_OXYGEN));
if (censorType == TestTaskEvent.SensorType.TEMPERATURE) {
//温度的
synchronized (mLock) {
temperatureCallbacks.finishBroadcast();
}
}
- } else if (censorType == TestTaskEvent.SensorType.HEART_RATE_AND_OXYGEN) {
+ } else if (censorType == TestTaskEvent.SensorType.HEART_RATE_AND_OXYGEN
+ || censorType == TestTaskEvent.SensorType.JUST_OXYGEN
+ || censorType == TestTaskEvent.SensorType.JUST_HEART_RATE) {
//心率的
synchronized (mLock) {
try {
while (i > 0) {
i--;
String callbackTag = (String) heartRateCallbacks.getBroadcastCookie(i);
+ ICLogger.d("callbackTag = "+ callbackTag +", tag = "+tag);
if (callbackTag != null && callbackTag.equals(tag)) {
heartRateCallbacks.getBroadcastItem(i).onGettingData();
break;
}
private void checkContinue() {
- wakeLock.release();
- isRunning = false;
- currentTask = null;
- int size = mTaskList.size();
- IcLog.d(TAG, "task list size == > " + size);
- if (size > 0) {
- EventBus.getDefault().post(mTaskList.poll());
+ try {
+ if (wakeLock != null) {
+ wakeLock.release();
+ }
+ }catch (Exception e){
+ Log.getStackTraceString(e.fillInStackTrace());
+ }finally {
+ isRunning = false;
+ currentTask = null;
+ int size = mTaskList.size();
+ IcLog.d(TAG, "task list size == > " + size);
+ if (size > 0) {
+ EventBus.getDefault().post(mTaskList.poll());
+ }
}
}