Desidero eseguire una pulizia in una vista quando l'attività viene distrutta. C'è un modo per ottenere una richiamata nella vista quando l'attività viene distrutta? Ho provato a utilizzare onDetachedFromWindow
, ma non sono sicuro se sia la cosa giusta da fare.Come rilevare se l'attività principale della vista viene distrutta
risposta
Con la consapevolezza che onDestroy non è garantito per essere chiamato, è possibile richiamare semplicemente la visualizzazione nelle attività sul metodo onDestroy.
Modifica in risposta al commento: È possibile ottenere qualsiasi vista dandogli un id nel layout e chiamando findViewById. Ecco un esempio:
layout.xml (che mostra solo il minimo indispensabile)
<LinearLayout>
<com.example.superwidget.DropDownTouchEnabledListView
android:id="@+id/special_list_view" />
</LinearLayout>
MyActivity.java (di nuovo, nudi minimi e assumendo le importazioni propri)
@Override
void onDestroy() {
DownTouchEnabledListView v = (DownTouchEnabledListView)findViewById(R.id.special_list_view);
v.doCallback(with, parameters);
}
Se si desidera ottenere un callback senza dover sovraccaricare il metodo View.onDetachedFromWindow()
, è possibile utilizzare il metodo View.addOnAttachStateChangeListener()
, che accetta un listener di callback come un singolo parametro.
solo per API> 12 –
- 1. Android c'è qualche richiamata vista quando viene distrutta?
- 2. AsyncTask verrà sempre eseguito anche se l'app viene distrutta?
- 3. Come impostare la vista della telecamera per riempire la vista principale
- 4. Come rilevare se l'app Android viene forzata arrestata o disinstallata?
- 5. Come rilevare se viene processato il pipe process.stdout del nodo?
- 6. Quando il controllore della vista principale/presentatore è impostato su un controller della vista modale?
- 7. JavaScript per rilevare se il frame principale è della stessa origine?
- 8. Nascondere il controller della vista principale con UISplitViewController in iOS8
- 9. Espresso - Come verificare se viene visualizzata una vista
- 10. aggiunta uiview come sottoview alla vista principale
- 11. Immagine ottenendo distrutta quando viene messo nella cartella drawable
- 12. Ember.js: Inserimento della vista risorse secondarie nell'outlet dell'applicazione principale
- 13. Android: modifica della vista principale di un pulsante
- 14. MVC: Come utilizzare le sezioni (rendering) dalla vista principale (principale) (Vista layout)?
- 15. L'acidità viene distrutta mentre si preme il pulsante home.
- 16. Come rilevare il tag principale articolo come Evernote Clipper fatto
- 17. UISplitViewController su iPhone: apre/mostra la vista principale dal controller della vista dettagli
- 18. Coldfusion: rilevare se viene eseguito dall'Utilità di pianificazione
- 19. Come rilevare se è presente un microfono
- 20. Topologia nodo Mongolab distrutta
- 21. come individuare l'eccezione della vista MVC?
- 22. Come rilevare se è supportata un'interfaccia grafica?
- 23. Controllare se il record è stata appena distrutta nel rotaie
- 24. Modo corretto per sapere se un'attività è stata distrutta
- 25. Come rilevare l'eccezione nel thread principale se l'eccezione si verifica nel thread secondario?
- 26. Come posso rilevare se Dispatcher.DisableProcessing è attivo?
- 27. Come rendere la diapositiva SWRevealViewController "sopra" al controller della vista principale e non "spingerla" fuori?
- 28. Come rilevare se RecyclerView è vuoto?
- 29. Come può una vista rilevare quando è collegata al genitore?
- 30. Modo rapido per rilevare se esiste una tabella o una vista DataContext
Potete approfondire un po 'su questo. La mia classe di visualizzazione personalizzata fa parte di un pacchetto separato e questa vista è definita nel layout xml. Quindi invocare qualcosa in vista dalla classe di attività non è fattibile. – bhups
"Quindi invocare qualcosa in vista dalla classe di attività non è fattibile." Certo che lo e. Chiama 'findViewById()', ottieni il widget, lo lanci nella classe appropriata e chiama un metodo su di esso. Detto questo, 'onDetachedFromWindow()' mi sembra una scelta ragionevole. – CommonsWare
@CommonsWe commentate più velocemente di quanto possa essere modificato. :) A proposito, grazie per tutto il lavoro che fai. I tuoi libri/codice/risposte sono stati inestimabili per me. –