Android: lanzar la misma instancia

Estoy creando un acceso directo a Inicio con el siguiente código: Me gustaría obtener la misma instancia abierta (si existe) de la aplicación lanzada y no una nueva instancia.

    public void createShortcut() {

    if (app.prefs.getBoolean("prefs_ShortcutCreated", false) == false) {
        Intent shortcutIntent = new Intent();
        shortcutIntent.setClassName(this, this.getClass().getName());

        shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);

        Intent addIntent = new Intent();
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "test");
        addIntent.putExtra("duplicate", false);
        File image = new File(app.DEFAULT_APP_FOLDER_MAIN, "icon.png");
        AssetManager assets = app.getApplicationContext().getResources().getAssets();
        try {
            copy(assets.open("icon.png"), image);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        Bitmap theBitmap = BitmapFactory.decodeFile(app.DEFAULT_APP_FOLDER_MAIN + "icon.png");
        Bitmap scaledBitmap = Bitmap.createScaledBitmap(theBitmap, 128, 128, true);
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON, scaledBitmap);

        addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
        sendBroadcast(addIntent);

        theBitmap.recycle();
        scaledBitmap.recycle();

        Editor editor = app.prefs.edit();
        editor.putBoolean("prefs_ShortcutCreated", true);
        editor.commit();
    }

}

preguntado el 22 de mayo de 12 a las 12:05

1 Respuestas

Android Framework destruye y vuelve a crear actividades siguiendo el ciclo de vida de actividad predefinido. Cuando una actividad no es visible para el usuario, lo más probable es que se haya destruido y definitivamente se haya 'pausado'. Sin embargo, si hay algo sobre una instancia de una actividad que desea mantener en todas las instancias, puede colocar esos artefactos en el Paquete entregado a la Actividad. onCreate mediante el onSaveInstanceState anulación del método. Esto permite que la actividad se vuelva a crear en el mismo estado en que se dejó, por ejemplo, para restaurar un formulario parcialmente completado en lugar de olvidar las entradas del usuario durante la recreación. La 'pila trasera' puede emplear un mecanismo diferente en el que no estoy al 100%.

contestado el 22 de mayo de 12 a las 13:05

¿Alguna ayuda Giuseppe? Siéntase libre de volver a publicar con más detalles si mi respuesta no es suficiente. - BrantApps

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.