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?

  • El botón dentro de la vista de lista crea un problema al desplazarse y al hacer clic en el botón
  • ¿Cómo obtener el ID de proveedor de un dispositivo Android mediante adb?
  • ¿Es necesario actionbarsherlock ya?
  • Obtener la altura de la pantalla en Android
  • Android: muestra los elementos del menú de la barra de acción según ViewPager
  • ¿Cómo obtener notificaciones de Android cuando se cerró la aplicación?
  • 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 ); } } 

  • Cómo guardar el archivo desde el sitio web a sdcard
  • Android cómo hacer que resalte la vista cuando se hace clic?
  • La animación no se inicia hasta que las actualizaciones de la interfaz de usuario o el evento de toque
  • Altura de la pantalla sin barra de estado, barra de acción y pestañas
  • Fragmento debe ser una clase pública estática para ser recreado correctamente desde el estado de la instancia
  • Android: ¿Configurar las preferencias compartidas durante la instalación?
  • 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.