Dicen que estoy en mi actividad principal y empiezo una nueva actividad

MainActivity > NewActivity

Y de NewActivity I pulse la tecla atrás

MainActivity < NewActivity

Quiero MainActivity hacer algo si es que se muestra después de NewActivity es cerrado, pero no cuando MainActivity se ejecuta normalmente, como cuando la primera vez que ejecuta la aplicación. ¿Alguien sabe si esto es posible?

OriginalEl autor William L. | 2012-06-25

5 Comentarios

  1. 8

    Un par de ideas:

    • Sólo puede establecer un indicador en MainActivity cuando se dispara hasta NewActivity.
    • Puede llamar startActivityForResult de MainActivity y organizar NewActivity para establecer un resultado, el cual recibirá en MainActivity.onActivityResult() cuando NewActivity acabados.
    Gracias! He utilizado startActivityForResult, funciona muy bien!

    OriginalEl autor Ted Hopp

  2. 20
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK)) {
            Log.d(this.getClass().getName(), "back button pressed");
        }
        return super.onKeyDown(keyCode, event);
    }

    @Actualización. Si usted desea ser notificado cuando NewActivity está terminado, usted tiene que empezar por startActivityForResult(Intent, requestCode). A continuación, debe reemplazar onActivityResult() en MainActivity. Compruebe la requestcode parámetro de aquí, si el código de retorno es igual al presentar el código (cuando empiece a childActivity), poner un poco de código para hacer su negocio.

    int MYCODE=1000;
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        //Result OK.d.
        if (requestCode == MYCODE) {
            //do something good
        }
    }
    No lo que acaba de escuchar si se pulsa el botón atrás?
    Si quieres escuchar el botón atrás solamente, el uso de la primera cortada códigos.

    OriginalEl autor Nguyen Minh Binh

  3. 10

    Puedo probar el siguiente método para detectar presionado el botón back en la barra de acción en la actividad por el primer método y el segundo se utiliza para la detección de hardware móvil de nuevo el botón o matar a la actividad de botón.

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()){
            case android.R.id.home:
                onBackPressed();
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }
    
    @Override
    public void onBackPressed() {
        setResult(RESULT_CANCELED);
        super.onBackPressed();
    }

    OriginalEl autor saravanan

  4. 7

    Puede reemplazar onBackPressed() en el método NewActivity, que detecta cuando se pulsa el botón. Y, a continuación, para informar a la MainActivity sobre él, usted puede enviar un indicador booleano en un paquete para que MainActivity detecta que su apertura después de NewActivity.

    En NewActivity:

           @Override
           public void onBackPressed() {
                    boolean fromNewActivity=true;
    
            Intent mainIntent = new Intent(view.getContext(), MainActivity.class);
            Bundle bundleObj = new Bundle();
            bundleObj.putString("fromNewActivity", Boolean.toString(fromNewActivity));
            mainIntent.putExtras(bundleObj);
            startActivityForResult(mainIntent, 0);
               }

    En MainActivity en onCreate() método :

           Bundle extras = getIntent().getExtras();
           boolean fromNewActivity =Boolean.parseBoolean( extras.getString("fromNewActivity"));

    Ahora usted puede comprobar si el MainActivity se abrió después de NewActivity o no.

    OriginalEl autor Yogesh Somani

  5. 0

    Al iniciar NewActivity necesita utilizar startActivityForResult y el uso de una válida requestId. Tal requestId se pasa de nuevo a usted para onActivityResult una vez NewActivity acabados.

    OriginalEl autor K-ballo

Dejar respuesta

Please enter your comment!
Please enter your name here