Ich bin neu bei Android und versuchen, Android-Dienste zu verstehen. Ich arbeite an einem Tutorial zur Aktualisierung Temperature
Messwerte auf einem Line Graph
.Probleme bei der Verwendung von Handlern in Android-Dienst
Im Folgenden ist der mein Code für Service
public class Temperature extends Service {
private static final String TAG = "HelloService";
private static final int PROCESS_SENSOR_DATA_ON_UI = 801;
private boolean isRunning = false;
public static ArrayList<Float> tempValueC=new ArrayList<Float>();
private Handler mUiHandler2;
@Override
public void onCreate() {
Log.i(TAG, "Service onCreate");
isRunning = true;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i(TAG, "Service onStartCommand");
new Thread(new Runnable() {
@Override
public void run() {
mUiHandler2 = new Handler(new UiHandlerCallback2());}
class UiHandlerCallback2 implements Handler.Callback {
@Override
public boolean handleMessage(Message msg) {
switch (msg.what) {
case COMPLETE_INIT:
break;
case PROCESS_EVENT_DEVICE_UNSUPPORTED:
Toast.makeText(getApplicationContext(), R.string.error_unsupported_device,
Toast.LENGTH_SHORT).show();
break;
case PROCESS_CONNECTION_STATE_CHANGE_UI:
//updateConnectionStateWidgets();
break;
case PROCESS_BATTERY_STATUS_UI:
// updateBatteryLevelWidget(msg.arg1);
break;
case PROCESS_SENSOR_DATA_ON_UI:
processSensorData((byte[]) msg.obj);
break;
}
return true;
}
private void processSensorData(byte[] sensorData) {
//code for temperature update
}
}
}
@Override
public IBinder onBind(Intent arg0) {
Log.i(TAG, "Service onBind");
return null;
}
ich eine Fehlermeldung erhalten, die wie folgt lautet: für alle Nachrichten
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
UiHandlerCallback2
zu überprüfen.
Ich erhalte den Fehler bei der Erstellung des Handlers mUiHandler2 = new Handler(new UiHandlerCallback2());
Ich will wissen, wo ich falsch gehen. Ich beginne immer noch mit den Grundlagen, also wird jede Art von Hilfe geschätzt.
Danke für die Informationen. Aber ich möchte Android-Dienst für die Implementierung verwenden. Irgendwelche Ideen? – ADI