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.

È stato utile?

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 ().

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top