2016-06-13 10 views
0

Wenn ich tun:sendOrderedBroadcast - Welcher Thread wird als Antwortempfänger ausgeführt?

sendOrderedBroadcast(intent, null, new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     if(getResultCode() == Activity.RESULT_OK) { 
      Log.d("LoginActivity", "OK"); 
     } else { 
      Log.e("LoginActivity", "Fail!"); 
     } 
    } 
}, null, Activity.RESULT_CANCELED, null, null); 

Auf dem Gewinde ist das onReceive() Verfahren laufen? Auf dem sendenden Thread oder auf dem UI-Thread?

+1

aus dem Dokument: 'Scheduler' \t Ein benutzerdefinierter Handler, mit dem die resultReceiver Rückruf planen; wenn null, wird es im Hauptthread des Kontexts eingeplant – pskink

+0

Also das bedeutet auf dem ui-Thread, richtig? – JohnyTex

+1

verwenden Sie einfach 'Log.d' und' Thread.currentThread() ' – pskink

Antwort

0

OnReceive wird immer im UI-Thread der Anwendung aufgerufen, in der Receiver registriert ist.

In diesem Fall UI/Haupt-Thread der gleichen Anwendung.

Verwandte Themen