2013-03-13 16 views
13

Ich habe einen Dienst im Vordergrundmodus ausgeführt und möchte feststellen, dass zwischen Benutzersitzungen auf Tablets mit Android 4.2 oder höher gewechselt wird.So erkennen Sie das Wechseln zwischen Benutzern

Gibt es einen Rundfunkempfänger, den ich registrieren kann, um benachrichtigt zu werden?

Ich habe festgestellt, dass Google Music die Musikwiedergabe stoppt, sobald eine andere Benutzersitzung auf dem Sperrbildschirm ausgewählt wird. Wie erkennt es den Schalter?


ANTWORT ERKLÄRT

Dank @CommonsWare für die richtige Antwort. Ich werde ein bisschen mehr erklären, wie man einen Benutzerwechsel erkennt.

Zunächst ist zu beachten, dass in der Dokumentation explizit angegeben wird, dass Empfänger über registriert werden müssen. Daher etwas tun wie:

UserSwitchReceiver receiver = new UserSwitchReceiver(); 
IntentFilter filter = new IntentFilter(); 
filter.addAction(Intent.ACTION_USER_BACKGROUND); 
filter.addAction(Intent.ACTION_USER_FOREGROUND); 
registerReceiver(receiver, filter); 

Dann im Empfänger können Sie auch die Benutzer-ID abrufen. Hier ist ein kleiner Ausschnitt:

public class UserSwitchReceiver extends BroadcastReceiver { 

private static final String TAG = "UserSwitchReceiver"; 

    @Override 
    public void onReceive(Context context, Intent intent) 
    { 
     boolean userSentBackground = intent.getAction().equals(Intent.ACTION_USER_BACKGROUND); 
     boolean userSentForeground = intent.getAction().equals(Intent.ACTION_USER_FOREGROUND); 
     Log.d(TAG, "Switch received. User sent background = " + userSentBackground + "; User sent foreground = " + userSentForeground + ";"); 

     int user = intent.getExtras().getInt("android.intent.extra.user_handle"); 
     Log.d(TAG, "user = " + user); 
    } 
} 
+2

Ich bin überrascht, dass der Dienst in Ihrem Fall weiterläuft. Hast du tatsächlich überprüft, dass es weitergeht? –

+0

Ja, tut es. Auf der einen Seite kann ich sehen, dass die Protokolle meiner App das Konto des anderen Benutzers bilden. Auf der anderen Seite, wenn ich zum ursprünglichen Benutzer zurückkehre (den Dienst ausführend), ist das Vordergrundbenachrichtigungssymbol da. Und es gibt keine Nachricht in dem Protokoll, die angibt, dass der Dienst beendet wurde. –

+0

Ich habe versucht, Apps von Google Play per Streaming zu streamen, und sie werden auch nicht beim Wechsel zu einem anderen Nutzer getötet. –

Antwort

Verwandte Themen