- Forum-Beiträge: 4
02.06.2014, 11:49:04 via Website
02.06.2014 11:49:04 via Website
Hallo,
meine App verbindet sich per Bluetooth über einen Thread, der im Hintergrund läuft und anschließend auf eingehende Nachrichten wartet. Sobald eine bestimmte Nachricht empfangen wird, soll sich ein Bild in der MainActivity ändern. Das Ganze mache ich über einen Handler.
In der Verbindungs-Klasse:
private static BluetoothConnectionService bt;
private Handler mHandler;
private BluetoothConnectionService(Handler handler) {
mHandler = handler;
}
public static BluetoothConnectionService getVerbindungsService(Handler handler) {
if (bt == null) {
bt = new BluetoothConnectionService(handler);
}
return bt;
}
if(...) {
Message msg = mHandler.obtainMessage(MainActivity.BILD_2);
mHandler.sendMessage(msg);
}
In der MainActivity:
bt = BluetoothConnectionService.getVerbindungsService(mHandler);
public final Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case BILD_2: imgView.setImageResource(R.raw.bild_2);
imgView.invalidate();
Toast.makeText(getApplicationContext(),"Bild geaendert", Toast.LENGTH_LONG).show();
}
});
break;
Dabei funktioniert es manchmal, dass sich das Bild ändert - allerdings nicht immer. Woran könnte das liegen? Auffällig ist, dass die Toast Nachricht auch dann angezeigt wird, wenn sich das Bild nicht ändert.
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.