Domanda sciocca su Android Activaty Lifecycle
-
27-10-2019 - |
Domanda
Ho lezioni di attività+di servizio.
Quando verrà visualizzata l'attività del programma e il servizio verrà avviato onCreate
metodo di attività.
Quando ho fatto clic sul pulsante Home di Virtual Machine, verrà visualizzata la schermata Home ma l'attività sarà sparita
- A questo punto, mi chiedo quel programma in quale situazione - Passato/fermato- ???
- Cosa è successo al servizio? (è ancora in esecuzione?)
- Come posso portare l'attività sul fronte usando il servizio?
Grazie...
Soluzione
Bene, nel tuo caso per l'attività se si preme il pulsante Home è messo in pausa. E lanciandolo di nuovo premendo il pulsante Home, lo riprende.
Per il servizio: dipende da come viene avviato il tuo servizio ..
Se si avvia il servizio con startervice (intento), il tuo servizio è in esecuzione fino a:
A) Lo fermi esplicitamente chiamando StopService.
b) Android lo uccide
c) chiami self -stop dall'interno del servizio
Se si avvia il servizio con bindService () senza chiamare startService (), il servizio lo farà:
A) Esegui fino a quando l'attività viene distrutta (non in pausa, quindi questo significa che continuerà a funzionare se si preme il pulsante Home) e questo significa anche che devi chiamare INSLID ().
b) Android lo uccide
c) fino a quando non chiami self -stop dall'interno del servizio
Per portare l'attività in primo piano devi chiamare un intento e impostare la bandiera credo che sia stato lanciato dalla storia o qualcosa del genere .... dovrai controllare i documenti.
intent.addflag (intent.flag_activity_reorder_to_front); < - Penso o questo -> flag_activity_launched_from_history
Altri suggerimenti
Vedi sotto il flusso di attività, spero che aiuti
Lo stato del tuo Activity
(e Service
) potrebbe variare a seconda di cos'altro sta accadendo. Se il sistema Android aveva bisogno di risorse, potrebbe aver distrutto il tuo Activity
(e forse anche il tuo Service
) per ottenerli. Dovresti leggere su:
Nel Activity
Diagramma (anche nella risposta di Mark Bakker) presta particolare attenzione alla casella contenente il testo "Le altre applicazioni necessitano di memoria".