2011-05-13 7 views
9

Tengo un problema en mi actividad, que puede llevar el control a la configuración de GPS de Android para que el usuario pueda encender/apagar el GPS, pero no puedo para regresar a mi actividad cuando presiono el botón Atrás, iré directamente a Inicio del móvil, no volveré a mi Actividad desde donde envío la señal a la configuración. ¿Alguien puede decirme la solución para esto?¿Cómo puedo volver a mi Actividad desde la ventana de configuración de GPS

if(!lm.isProviderEnabled(LocationManager.GPS_PROVIDER)) { 
    startActivityForResult(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS), 1); 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    Log.e("","OnActivity Result..."); 
    super.onActivityResult(requestCode, resultCode, data); 

    if (resultCode == GPS_LOC) { 
     switch (requestCode) { 
      case GPS_LOC: 
       //super.onCreate(inst); 
       super.onResume(); 
       //super.finish(); 
      break; 
     } 
    } 
} 

Respuesta

18

funciona para mí. ¿Seguro que tienes el permiso ACCESS_FINE_LOCATION establecido en tu manifiesto? ¿Estás seguro de que se llama a startActivityForResult()?

Además, ¿qué es GPS_LOC?

Aquí está mi código que funciona:

public class main extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     findViewById(R.id.button1).setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       startActivityForResult(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS), 1); 
      } 
     }); 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     if (resultCode == 1) { 
      switch (requestCode) { 
       case 1: 
       break; 
      } 
     } 
    } 
} 
+1

GPS_LOC es sólo una constante, Istead de '1' en su código y estaba estableciendo todos los permisos necesarios, sin embargo, obtuve la solución. En realidad, mi actividad llamaba automáticamente a la parada cuando estaba presionando el botón Atrás desde la configuración, así que llamé a Reiniciar() desde el principio de mi Actividad, problema resuelto. – Chandra

+0

Debe detenerse su actividad porque ya no está visible. Sin embargo, una vez que se descarta la actividad infantil, se iniciará y reanudará. ¿Llamaste a finish() desde OnStop()? – dhaag23

+0

No, solo estoy llamando aRestart() desde onStop() para resolver el problema, porque cuando sale de la configuración, llama a OnStop() en myActivity, esa es la razón por la cual myActivity se está cerrando y el control va a Mobile home . Así que acabo de llamar aRestart() desde onStop(), así resolví mi problema – Chandra

1
android:noHistory="true" 

retirar por encima del archivo menifest funciona para mí, pero los datos es nulo en el interior onActivityResult

Cuestiones relacionadas