Come impedire che un'attività venga ricreata disattivando lo schermo?Impedisci che l'attività Android venga ricreata disattivando lo schermo
Quello che faccio
- avvio Bejewels e passare alla schermata di gioielli.
- Premere brevemente il pulsante di alimentazione. Lo schermo è spento, ma il dispositivo no.
- Premere nuovamente il pulsante di accensione.
Quello che vedo
Lo stesso schermo come prima schermata di spegnimento.
In caso di mia domanda (una banale, solo una web-app con un unico WebView) lo scenario è il seguente:
Quello che faccio
- iniziare la mia app. Il metodo activityCreate() carica un URL in WebView.
- Premere brevemente il pulsante di alimentazione. Lo schermo è spento, ma il dispositivo no.
- Premere nuovamente il pulsante di accensione.
Quello che vedo
Il WebView è ricaricare la pagina.
Quello che mi aspettavo
Come nel caso Bejewels voglio vedere lo stesso schermo, che per la mia app è la pagina nel suo stato precedente: gli script sono in esecuzione, un form fields are riempita ecc
Debug ha dimostrato, che mi sbagliavo (in una domanda precedente) e OnDestroy() e onCreate() vengono chiamati uno ad uno quando lo schermo è appena acceso. E poiché sento ancora una musica, riprodotta da uno script, quando lo schermo è spento, sembra che sia l'attività che la WebView esistano fino a quando non premo di nuovo il pulsante di accensione.
Quello che ho provato.
- android: alwaysRetainTaskState = "true" Lo stesso comportamento.
- Lettura di intenti (inutilmente, non ho capito, come sono applicati alla mia situazione).
- Utilizzo di PhoneGap. Si comporta in modo diverso: uccide l'intera applicazione premendo il pulsante di accensione.Questo è meglio, ma non il migliore.
Non è cambiato nulla. (Non ho rimosso Android: alwaysRetainTaskState = "true"). – noober
dopo aver premuto il pulsante di accensione per lo schermo spento e poi di nuovo per lo schermo sul onResume() viene chiamato, cosa stai facendo in onResume()? – Bush
1. Sì, viene chiamato onResume(). L'ho controllato (sovrascritto e chiamato Toast). 2. Scusa per il fatto di essere stupido, non ho proprio pensato di dover fare qualcosa in onResume(). Quindi, non è stato sovrascritto e ora contiene solo la chiamata Toast. 3. Comportamento ora è il seguente: dopo aver premuto il pulsante per la prima volta, quando lo schermo è spento, la pagina si sta ricaricando in background (la musica si interrompe per riprodurre poi riproduce dall'inizio, c'è un javascript nella sezione onload della pagina web che avvia la musica giocando). – noober