Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo detectar la conmutación entre usuarios

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

¿Hay algún receptor de difusión que pueda registrar para ser notificado?

  • Ejecución de Google Maps v2 en el emulador de Android
  • Establecer dinámicamente el fondo del diseño lineal
  • Android - addToBackStack () no funciona?
  • Cuándo usar FragmentManager :: putFragment y getFragment
  • El emulador de Android ya no empieza
  • Prueba de DialogFragments con Robolectric
  • He notado que Google Music detiene la reproducción de 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 @ ComandosWare para la respuesta correcta. Voy a explicar un poco más cómo detectar un interruptor de usuario.

    Primero, tenga en cuenta que la documentación dice explícitamente que los receptores deben registrarse a través de Context.registerReceiver . Por lo tanto, haga 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 el ID de usuario. Aquí hay un pequeño fragmento:

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

  • ¿Cuándo se debe usar RxJava Observable y cuándo Callback simple en Android?
  • Obtención de fuentes web para trabajar con phonegap y Android - ¿cómo?
  • ¿Qué es una ventana de Android?
  • Qué es esta advertencia: Ignorar el atributo InnerClasses para una clase interna anónima que no viene con un atributo de EnclosingMethod asociado
  • Acceda a la cámara a través de OpenMAX en Android
  • PhoneStateListener onMessageWaitingIndicatorChanged () no se llama de forma fiable
  • One Solution collect form web for “Cómo detectar la conmutación entre usuarios”

    Prueba ACTION_USER_FOREGROUND y ACTION_USER_BACKGROUND . No los he utilizado, pero se agregaron en el nivel 17 de API, y su descripción parece que puede ayudar.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.