Matar App al presionar boton atrás

publicado por: Anonymous

necesito si me pueden ayudar en lo siguiente:

Poseo una app que al comenzar me lanza una splashscreen, luego viene un método de validación (en otra activity) de la conectividad a internet si este es negativo me lanza otra activity señalando que no posee conectividad con un imageview (se carga un SVG o PNG según version S.O), ¿cómo puedo hacer para que al presionar el boton atrás del teléfono termine la app?, probé dentro de onBackPressed con finish(); pero me regresa al activity anterior, también probé con onDestroy pero no hace nada.

Esta es mi Activity:

public class SinConexion extends Activity {

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.sinconexion);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);// evita que se gire la pantalla

        if (android.os.Build.VERSION.SDK_INT >= 11) {

            ImageView imageView = (ImageView) findViewById(R.id.imageView_sin_conexion);//imageview de splash
            SVG homeSvg = SVGParser.getSVGFromResource(getResources(), R.raw.nosignal);

            imageView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
            // imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
            imageView.setAdjustViewBounds(true);
            imageView.setImageDrawable(homeSvg.createPictureDrawable());

        } else {
            setContentView(R.layout.sinconexion);
        }
    }

    @Override
    public void onBackPressed() {
       super.finish();
        }
}

Saludos y muchas gracias.

solución

Para cerrar una aplicación a ejecutar el botón “back”,

se realiza simplemente ejecutando el método finish() a travez de onKeyDown(), detectando el evento “Back”:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {
        super.finish();
    }
    return super.onKeyDown(keyCode, event);
}

Si deseas cerrar la aplicación desde otra actividad,

puedes implementar este método usando startActivityForResult() en la Actividad que abre tu nueva actividad:

   Intent myIntent = new Intent(MainActivity.this, NuevaActivity.class);            
   startActivityForResult(myIntent, 0);

también agregas el método onActivityResult() en la actividad que abre las actividades:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(resultCode == 0) {
        finish();
    }
}

para terminar la actividad principal.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published.