Hintergrund Thread für Bluetoothüberprüfung

  • 4 Antworten
  • Letztes Antwortdatum
H

Hampidu

Neues Mitglied
0
Hallo,

ich möchte abhängig davon, ob Bluetooth aktiviert ist oder nicht, unterschiedliche View Elemente anzeigen lassen und habe das bisher mit einem ganz normalen Thread umgesetzt, der in einer Endlosschleife abfragt, ob Bluetooth aktiviert ist oder nicht.

Gibt es da noch eine effizientere Lösung oder schönere Umsetzung?
 
Geht das vllt mit OnChangeListenern, dann spart das sehr viel akku
 
Greenstar schrieb:
Geht das vllt mit OnChangeListenern, dann spart das sehr viel akku

Hast du da eine konkrete Vorgehensweise oder ist das nur eine Idee?
Und macht so ein Thread nicht das gleiche, wie ein OnChangeListener?
Hier mal mein selbstgebastelter Thread:

Code:
visibilityThread = new Thread(new Runnable() {
            public void run() {
                boolean enabled = false;
                while (true) {
                    if (mAdapter.isEnabled() && !enabled) {
                        enabled = true;
                        Log.d(TAG, "enabled");
                        runOnUiThread(new Runnable() {
                            public void run() {
                                bluetoothMessage.setVisibility(View.INVISIBLE);
                                bluetoothButton.setVisibility(View.INVISIBLE);
                                deviceListView.setVisibility(View.VISIBLE);
                                searchButton.setVisibility(View.VISIBLE);
                                startButton.setVisibility(View.VISIBLE);
                            }
                        });
                    } else if (!mAdapter.isEnabled() && enabled) {
                        enabled = false;
                        Log.d(TAG, "disabled");
                        runOnUiThread(new Runnable() {
                            public void run() {
                                bluetoothMessage.setVisibility(View.VISIBLE);
                                bluetoothButton.setVisibility(View.VISIBLE);
                                deviceListView.setVisibility(View.INVISIBLE);
                                searchButton.setVisibility(View.INVISIBLE);
                                startButton.setVisibility(View.INVISIBLE);
                            }
                        });
                    }
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
        });
        visibilityThread.setDaemon(true);
        visibilityThread.start();
 
Also entweder blamier ich mich jetzt total aber geht die run() Methode das nicht von selber immer durch d.h. du brauchst das while nicht ?
Beispiel für den OnChangeListener schreib und test ich mal kurz :D
 
Greenstar schrieb:
Also entweder blamier ich mich jetzt total aber geht die run() Methode das nicht von selber immer durch d.h. du brauchst das while nicht ?
Beispiel für den OnChangeListener schreib und test ich mal kurz :D

Doch man braucht die While-Schleife. Die run Methode wird nur einmal aufgerufen.
 
Zurück
Oben Unten