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


Iniciar la actividad de servicio en la pantalla de bloqueo activa la pantalla pero no muestra la actividad en sí

Estoy tratando de iniciar una actividad de un servicio que ya había adquirido la cerradura de la siguiente manera:

Intent i = new Intent(context, MyActivity.class); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NO_USER_ACTION); startActivity(i); 

El manifiesto de actividad se declara de la siguiente manera:

  • Cómo obtener el código de estado en la respuesta correcta Volley Android
  • ¿Cómo obtener una lista de la pila de historial de actividades?
  • Cómo aplicar sombra a ImageView?
  • ¿Cómo puede una vista detectar cuando se está conectando a su padre?
  • No funciona correctamente en el fragmento de Android
  • Vista flotante de Android (sobre otras vistas)
  •  <activity android:name=".MyActivity" android:configChanges="orientation|screenSize|keyboardHidden|keyboard|navigation" android:excludeFromRecents="true" android:launchMode="singleInstance" android:screenOrientation="nosensor" android:showOnLockScreen="true" android:taskAffinity="" android:theme="@style/MyTheme" /> 

    Y finalmente, en onCreate() o en onAttachedToWindow() (probé en ambos), agrego los siguientes indicadores:

     final Window win = getWindow(); win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON | WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON); 

    El problema es que la primera vez que llamo startActivity() de mi servicio, la pantalla se enciende, pero la actividad en sí no aparece. En su lugar, muestra la pantalla de bloqueo. Cada llamada posterior de startActivity() funciona correctamente, pero no puedo encontrar una razón para este comportamiento extraño.

    He intentado ya sugerencias para obtener un wakelock completo en lugar de parcial, cambiar las banderas y los valores en el manifiesto de acuerdo con las siguientes respuestas SO:

    • Actividad de Android que no se muestra cuando se desactiva la pantalla y se bloquea la pantalla
    • Cómo desbloquear la pantalla cuando se llama BroadcastReceiver?
    • Programáticamente activar la pantalla en android
    • Android Galaxy S4 – Actividad visible en la pantalla de bloqueo

    Tenga en cuenta que mi tema no es un diálogo sino una actividad de pantalla completa.

    ¿Alguna otra idea?

  • Configuración de usuario guardada en SharedPreferences eliminada o perdida entre recargas de la aplicación
  • Datos de Android Exif en archivo JPEG
  • No se puede detectar cuando se responde la llamada saliente en Android
  • Inhabilitar el movimiento en mapview
  • ¿Es posible ejecutar un emulador de Android sin configurar Eclipse
  • ¿Cómo puedo compartir contenido en la pared de Facebook con su SDK de Android?
  • 3 Solutions collect form web for “Iniciar la actividad de servicio en la pantalla de bloqueo activa la pantalla pero no muestra la actividad en sí”

    Estoy enfrentando el mismo problema, después de una gran cantidad de búsqueda aquí y google, encontró esto que desbloqueó la pantalla y se abrió mi actividad, pero sólo funciona para mí cuando la aplicación se está ejecutando (primer plano / fondo).

     import android.view.Window; import android.view.WindowManager.LayoutParams; Window window = this.getWindow(); window.addFlags(LayoutParams.FLAG_DISMISS_KEYGUARD); window.addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED); window.addFlags(LayoutParams.FLAG_TURN_SCREEN_ON); 

    Estoy intentando iniciar una actividad cuando la aplicación está cerrada … (usando el receptor de difusión)

    En los documentos (por ejemplo aquí ) y la mayoría de las respuestas en SO las banderas se agregan de esta manera:

      getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); 

    Pero cuando intenté la manera que es como en el ejemplo desbloqueó la pantalla en vez apenas de dar vuelta en la pantalla.

    espero que esto ayude . Todavía no solucionó mi problema completamente.

    EDITAR:

    Encontré este post que solucionó mi problema.

    Hay un comentario sobre no usar un tema de diálogo que lo resolvió para mí

    Ya que mi aplicación ya incluye un Service , esto es lo que hago: si la pantalla está bloqueada , registro un receptor de difusión (un poco más simple que éste , ya que reacciona solo al desbloquear) que inicia la Actividad tan pronto como la pantalla se pone Desbloqueado

     Step 1: Add below code in your activity before setContentView(R.layout.activity_about_us); **getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD| WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);** Step 2: Lock your mobile than you will see activity in which you have added this code. 

    Puede implementar esto si desea abrir determinada pantalla por ocurrencia de notificación como llamada de skype.

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