Cómo detectar el cambio entre usuarios.

Tengo un servicio que se ejecuta en modo de primer plano y me gustaría detectar el cambio entre sesiones de usuario en tabletas con Android 4.2 o superior.

¿Hay algún receptor de difusión que pueda registrar para recibir una notificación?

Me he dado cuenta de que Google Music detiene la reproducción de la música tan pronto como se elige otra sesión de usuario en la pantalla de bloqueo. ¿Cómo detecta el interruptor?

RESPUESTA EXPLICADA

Gracias a @CommonsWare por la respuesta correcta. Explicaré un poco más cómo detectar un cambio de usuario.

Primero, tenga en cuenta que la documentación dice explícitamente que los receptores deben registrarse a través deContext.registerReceiver. Por lo tanto, hacer algo como:

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

Luego en el receptor también puede recuperar la identificación del usuario. Aquí hay un pequeño fragmento de código:

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 );
    }
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta