Ho un lettore multimediale che interrompe la riproduzione ogni volta che l'utente chiude l'app, premendo il pulsante Home, utilizzando il pulsante Indietro o semplicemente aprendo un'altra app. Per ottenere questo comportamento, ho aggiunto un onStop()
alla mia attività principale che dice al mio MediaPlayer
(che è in un servizio) di interrompere la riproduzione di musica.Verifica se onStop viene chiamato dall'interazione dell'utente o oscuramento dello schermo
Tuttavia, mi piacerebbe che la musica continuasse a suonare ogni volta che lo schermo si attenua, utilizzando il pulsante di accensione per spegnere lo schermo o semplicemente l'oscuramento automatico dello schermo.
In questo momento il lettore smette anche di giocare quando lo schermo si attenua, il che significa che anche il metodo onStop() viene chiamato allora.
Come posso verificare se l'onStop() viene chiamato dall'attenuazione dello schermo?
Ho già applicato unall'oggetto MediaPlayer
, che, per quanto ne so, dovrebbe consentire al lettore di continuare a funzionare dopo lo spegnimento dello schermo.
Devo aggiungere anche un wakelock parziale alla mia attività principale?
appena applicato un PARTIAL_WAKELOCK
sia per la mia attività principale, così come il mio lettore multimediale. In questo momento, lo schermo non si spegne da solo, e quando l'utente preme il pulsante di accensione la musica si ferma ancora.
Ovviamente, questo non funziona come pensavo.
Esiste un modo per ottenere il comportamento che sto cercando?
cosa dire di avere il campo "booleano privato stoppedByUser = false;' nella tua attività, impostandolo su 'false' in' onStart() ', su' true' in 'onBackPressed()' e 'onUserLeaveHint()' e controllo il suo valore in 'onStop()'? – Vladimir
Non è affatto una cattiva idea! Lo proverò –
Oh mio, ha funzionato davvero! Si prega di lasciare il tuo commento come risposta in modo che io possa accettarlo per i futuri utenti. –