Erkennen des Wechsels zwischen Benutzern

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

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

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

ANTWORT ERKLÄRT

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

Beachten Sie zunächst, dass in der Dokumentation ausdrücklich angegeben ist, dass Empfänger durch registriert werden müssenContext.registerReceiver. Deshalb mache etwas wie:

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

Im Empfänger können Sie dann 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 );
    }
}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage