Forced faultTimer to run on UI thread using handler, because otherwise using pebble datasource gave an error about not having run Looper.prepare...
This commit is contained in:
@@ -42,6 +42,7 @@ import android.media.AudioManager;
|
|||||||
import android.media.ToneGenerator;
|
import android.media.ToneGenerator;
|
||||||
import android.os.CountDownTimer;
|
import android.os.CountDownTimer;
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
|
import android.os.Handler;
|
||||||
import android.os.HandlerThread;
|
import android.os.HandlerThread;
|
||||||
import android.os.Binder;
|
import android.os.Binder;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
@@ -106,6 +107,7 @@ public class SdServer extends Service implements SdDataReceiver {
|
|||||||
private boolean mLogData = false;
|
private boolean mLogData = false;
|
||||||
private File mOutFile;
|
private File mOutFile;
|
||||||
private OsdUtil mUtil;
|
private OsdUtil mUtil;
|
||||||
|
private Handler mHandler;
|
||||||
|
|
||||||
private final IBinder mBinder = new SdBinder();
|
private final IBinder mBinder = new SdBinder();
|
||||||
|
|
||||||
@@ -135,6 +137,10 @@ public class SdServer extends Service implements SdDataReceiver {
|
|||||||
return mBinder;
|
return mBinder;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** used to make suer timers run on UI thread */
|
||||||
|
private void runOnUiThread(Runnable runnable) {
|
||||||
|
mHandler.post(runnable);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* onCreate() - called when services is created. Starts message
|
* onCreate() - called when services is created. Starts message
|
||||||
@@ -143,6 +149,7 @@ public class SdServer extends Service implements SdDataReceiver {
|
|||||||
@Override
|
@Override
|
||||||
public void onCreate() {
|
public void onCreate() {
|
||||||
Log.v(TAG, "onCreate()");
|
Log.v(TAG, "onCreate()");
|
||||||
|
mHandler = new Handler();
|
||||||
|
|
||||||
mUtil = new OsdUtil(getApplicationContext());
|
mUtil = new OsdUtil(getApplicationContext());
|
||||||
|
|
||||||
@@ -741,11 +748,15 @@ public class SdServer extends Service implements SdDataReceiver {
|
|||||||
Log.v(TAG, "startFaultTimer(): fault timer already running - not doing anything.");
|
Log.v(TAG, "startFaultTimer(): fault timer already running - not doing anything.");
|
||||||
} else {
|
} else {
|
||||||
Log.v(TAG, "startFaultTimer(): starting fault timer.");
|
Log.v(TAG, "startFaultTimer(): starting fault timer.");
|
||||||
mFaultTimerCompleted = false;
|
runOnUiThread(new Runnable() {
|
||||||
mFaultTimer =
|
public void run() {
|
||||||
// convert to ms.
|
mFaultTimerCompleted = false;
|
||||||
new FaultTimer(mFaultTimerPeriod * 1000, 1000);
|
mFaultTimer =
|
||||||
mFaultTimer.start();
|
// convert to ms.
|
||||||
|
new FaultTimer(mFaultTimerPeriod * 1000, 1000);
|
||||||
|
mFaultTimer.start();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user