2011-09-27 15 views
7

Tengo una actividad que se muestra como no modal cuando suena el teléfono (en la aplicación del teléfono). Me gustaría terminar la actividad cuando ocurra alguno de los siguientes eventos. El primero es si toco en algún lugar fuera de la Actividad (esto no es un problema), el segundo es si el timbre se detiene. Estoy escuchando IDLE_STATE en el receptor de la transmisión, pero no estoy seguro de cómo llamar al final de la actividad cuando lo veo. El receptor no está registrado por la actividad sino por el Manifest.xmlFinalización de una actividad desde un receptor de difusión

Respuesta

0

¿Qué sucede si registra otro receptor de difusión de la actividad? Luego, cuando quiera matarlo, envíe un mensaje de difusión del receptor de difusión que mencionó.

0

De hecho, terminé agregando un PhoneStateListener en la actividad para escuchar IDLE_STATE.

12

escribir el código en su recepción de la emisión ahora esto enviará otro amplio elenco con la intención llamado "com.hello.action"

Intent local = new Intent(); 
local.setAction("com.hello.action"); 
sendBroadcast(local); 

Ahora coger esta intención en la actividad con la que desea terminarlo y a continuación, llamar a la super.finish() en el método de OnReceive de su receptor como esto

public class fileNamefilter extends Activity { 
ArrayAdapter<String> adapter; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    IntentFilter filter = new IntentFilter(); 

    filter.addAction("com.hello.action"); 
    registerReceiver(receiver, filter); 

    } 
BroadcastReceiver receiver = new BroadcastReceiver() { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     finish(); 

    } 
}; 

public void finish() { 
    super.finish(); 
}; 
} 

esto va a terminar la actividad

Cuestiones relacionadas