Applicazione che entra in modalità ANR
Domanda
Quando gli utenti preme il pulsante Indietro nella mia applicazione. Ecco lo scenario:
- .
- L'utente avvia l'applicazione - attività mostra
- L'utente preme il pulsante Indietro
- L'utente riavvia l'applicazione. A questo punto applicazione mostra solo uno schermo vuoto, nessuno dei pulsanti (home / back) risponde, dopo
Una finestra di dialogo della chiusura forzata del tempo arriva.
Nota: se l'utente preme "Home" e quindi rilancia l'app, ciò non accade, solo se l'utente preme "indietro" e quindi rilancialo.In My OnCreate () Ho qualche codice di configurazione di rete. Tuttavia, OnDestroy () ha il codice di pulizia corrispondente, quindi non capisco perché questo sta accadendo.
.@Override public void onCreate(Bundle savedInstanceState) { Log.d(DEBUG_TAG, "onCreate()"); super.onCreate(savedInstanceState); setContentView(R.layout.main); // Aquire the multicast lock // Create an instance of JmDNS // Add a listener for Bonjour services of a given type } @Override protected void onDestroy() { Log.d(DEBUG_TAG, "onDestroy()"); // Remove the services listener // Set the reference to JmDNS instance null // Release the multicast lock super.onDestroy(); }
Non sei sicuro di cosa sta succedendo, e non so come eseguire il debug.
Interessante - "Browser Zeroconf" Un'app popolare che ho scaricato dal mercato Android da utilizzare per il debug Il mio - sembra avere lo stesso problema.
Modifica: modificato il codice da OnStart () / OnSTOP () su OnCreate () / OnDestroy (). Lo stesso problema di prima.
Modifica: per chiunque corre in un problema simile, questo è ciò che stava causando la mia sofferenza. Il codice Android non era il colpevole: http://sourceforge.net/tracker/index.php?func= Dettagli & AID= 2933183 & GROUP_ID= 93852 & ATID= 605791
Soluzione
You may be making network requests on the UI thread. You might checkout Painless Threading and AsyncTask for handling that.
Note that it might be a good idea to do your setup and tear-down in onCreate
and onDestroy
. onStart
can be called multiple times during the activity's life cycle; is your code guarding against this case?