Catturare PRINCIPALE intento di programmazione
-
19-09-2019 - |
Domanda
Ho bisogno della mia attività per gestire premere il pulsante HOME con un ricevitore a livello di codice, ma l'evento non sta sparando. Io posso, tuttavia, registrare con successo e catturare questo filtro intento se io proclamatela una sezione attività manifest.xml. Ecco il codice per il ricevitore che non funziona:
BroadcastReceiver br;
br = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
return; // I put a breakpoint here to see if this gets called
}
};
IntentFilter intf = new IntentFilter();
intf.addAction(Intent.ACTION_MAIN);
intf.addCategory(Intent.CATEGORY_HOME);
intf.addCategory(Intent.CATEGORY_DEFAULT);
registerReceiver(br, intf);
Qualcuno sa perché questo non cattura il tasto home clic?
A proposito, ho provato a lavorare intorno a questo con la creazione di un'altra attività e specificando il suo filtro intento nel manifesto. Ho impostato l'attività Enabled = "false" nel manifesto, ma non riuscivo a capire come consentire che l'attività in fase di esecuzione. Linea di fondo, voglio solo registrare il filtro intento tasto home per la mia applicazione solo quando la mia applicazione è in esecuzione, e non riesco a capire come fare.
Soluzione
Se si sta cercando di implementare una schermata iniziale di sostituzione, è necessario il filtro Intent
di essere nel manifesto - vedere l'applicazione iniziale del campione nel SDK
Se si sta tentando di bloccare il tasto HOME, per favore non.
Altri suggerimenti
Non ci dovrebbe essere un caso in cui dovreste aver bisogno di sostituire il pulsante di casa, è lì per assicurarsi che l'utente a mantenere sempre il controllo sul suo telefono. Cosa stai cercando di fare esattamente? Se si vuole rilevare quando la vostra attività non sono più visibili, si dovrebbe ignorare onStop ().