Reanudar mi solicitud de la misma manera que se reanudó de la historia
Estoy escribiendo un SDK para ser utilizado en la aplicación de alojamiento. Mi SDK crea una notificación que necesita reanudar la aplicación, de la misma manera que presiona el botón de tareas y selecciona la aplicación, o presiona larga en el botón Inicio y selecciona tu aplicación.
Esto es lo que he estado tratando de hacer:
- Android: ¿Por qué se llama onTabSelected cuando se crean pestañas?
- Fija la posición del botón en la actividad de los padres cuando el teclado está abierto
- OnCreate () vs OnStart ()
- Android mantiene el estado de devolución de llamada después del cambio de configuración
- Utilizar Fragmentos (ActionTabs) y Webview
PackageManager packageManager = context.getPackageManager(); intent = packageManager.getLaunchIntentForPackage(context.getPackageName()); intent.addFlags(Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY); intent.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); PendingIntent pendingIntent = PendingIntent.getActivity(context, 10, intent, flags); Notification notification = new NotificationCompat.Builder(context). setContentIntent(pendingIntent). ... build(); getNotificationManager().notify(NOTIFICATION_ID, notification);
He estado probando esto en la aplicación de acogida con una actividad de lanzador con el modo de almuerzo "predeterminado" (no se ha establecido el modo de lanzamiento en el manifiesto) y mi sdk también tiene 1 actividad con el modo almuerzo "singleTask".
- Así que almuerzo la aplicación
- Inicie mi actividad SDK que dispara una notificación de prueba en el método onCreat.
- Presiono a casa
- Hago clic en la notificación.
Después de hacer esos pasos espero que se devuelva a mi actividad, pero en su lugar se abre otra instancia de la actividad de inicio de host. ¿Qué me estoy perdiendo? ¿Cómo puedo hacer que esto funcione?
- ¿Cuándo se utiliza realmente el paquete savedInstanceState?
- Obtener la altura del teclado de software de Android sin ajustar "adjustResize"
- ¿Cómo abrir el menú de opciones mediante programación?
- Cambiar fragmentos - Google Map Fragmento V2 - La actividad ha sido destruida Error
- IllegalArgumentException: No se puede cambiar el tipo de ventana después de agregar la ventana
- Formas de llevar una aplicación de Android en segundo plano
- ¿Ciclo de vida de la actividad?
- Navegación arriba y datos de instancia guardados
Si desea reanudar desde donde se detiene , quite el distintivo " NEW_TASK ". No hará nueva tarea. Espero que lo encuentre útil en su tarea.
Según su requisito la aplicación del anfitrión necesita fijar " singleTop " modo de lanzamiento en la actividad del lanzador y de su SDK usted no puede fijarlo . De alguna manera usted necesita decir a la aplicación de acogida para establecer este indicador.
Una vez que haya establecido el modo de lanzamiento "singleTop", recibirá una nueva intención invalidando el método onNewIntent () y su actividad estará en el mismo estado que el anterior.
En su archivo AndroidManifest.xml
, vaya a la declaración de su actividad principal y use android:launchMode="singleTask"
como esto:
<activity android:name=".MainActivity" android:label="@string/app_name" android:launchMode="singleTask" android:screenOrientation="portrait" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
De esta manera, si la tarea ya se está ejecutando en segundo plano, el sistema la pondrá en primer plano dejando que el usuario continúe lo que estaba haciendo antes de que la actividad se haya puesto en segundo plano.
- Obtener un puntero JNIEnv válido
- Cómo aplicar el tamaño de fuente al renderizar código HTML en Android o Java