Come posso evitare che le app vengano uccise mentre dormo?


11

I have a Droid 2. Ho un gioco lungo e ad alta intensità di risorse (anime spettrali) che vorrei lasciare in esecuzione mentre non uso il telefono. Se premo il pulsante "Home" di Android per tornare alla schermata principale e quindi riavviare immediatamente il gioco, sarà esattamente dove mi ero interrotto. Lo stesso se premo il pulsante di accensione per dormire, quindi accendo immediatamente il telefono, sblocco e riavvio del gioco.

Se lo lascio per un po 'di tempo (alcune ore), quando torno e lancio il gioco, inizia come se non fosse mai in esecuzione. Nel frattempo il telefono non è stato utilizzato per nulla, sebbene la sincronizzazione sia attiva.

La mia domanda è duplice: come posso ottenere maggiori informazioni su quali app vengono uccise quando e perché e come posso impostarle per consentire a questa app di continuare a funzionare? Non ne ho bisogno per fare nulla in background, voglio solo che sia ancora lì quando torno.

Conosco il concetto di cancellare la memoria di Android in quanto è necessario e non necessita di un task killer, ma voglio che non uccida QUESTA attività a meno che non la esca davvero.


Presumo che tu non abbia accesso al codice attuale?
Nanne,

Corretto, si tratta di app a sorgente chiuso acquistate dall'app store.
Jason Viers,

Risposte:


2

Sono abbastanza sicuro che non sia un'opzione nel design predefinito di Android. Non ho mai visto personalmente un'app per queste cose perché la maggior parte delle persone desidera che i programmi vengano chiusi per mantenere alta la velocità del telefono. È il sistema Android che sta chiudendo i programmi inutilizzati. Il creatore dell'app dovrebbe progettare un servizio per mantenerlo in esecuzione in background o possibile come un calcolo sempre attivo o audio in modo che il sistema pensi che il programma stia facendo qualcosa. Ciò consumerebbe la batteria.


Mentre la tua prima e terza frase sono assolutamente corrette, le altre no.
Michael,

2

Suggerimento: utilizzare Tasker per disabilitare il timeout dello schermo per l'app. Ciò potrebbe impedirgli di passare in secondo piano.


Darò un'occhiata e lo proverò, grazie! Prenderò nota di qualsiasi successo o fallimento.
Jason Viers,

Posso confermare che la modifica del timeout dello schermo in Tasker NON impedisce che l'app venga uccisa. Grazie per il suggerimento, comunque.
Jason Viers,

1
Aspetta, questo non impedisce lo spegnimento dello schermo? Quindi sprecare la batteria?
Michael,

2

Alla prima parte della tua domanda;

come posso ottenere maggiori informazioni su quali app vengono uccise quando e perché?

L'SDK di Android ha una breve sintesi della memoria di Android http://developer.android.com/guide/topics/fundamentals.html

Per impostazione predefinita, ogni applicazione viene eseguita nel proprio processo Linux. Android avvia il processo quando è necessario eseguire uno dei componenti dell'applicazione, quindi interrompe il processo quando non è più necessario o quando il sistema deve recuperare memoria per altre applicazioni.

Così efficacemente Android può essere sintetizzato come programma di uccisione quando determina che non lo stai utilizzando (ho fatto clic su Esci dall'app) o quando si esauriscono le risorse. Ad esempio, se hai 512 MB di RAM e 10 gratuiti e avvii un'app che ne richiede 12, proverà a determinare l'app meno utilizzata da cui può prendere 12.

Tende a farlo abbastanza bene (almeno nella mia esperienza). Potresti essere in grado di tornare a casa dal tuo gioco e fare un paio di cose, ma alla terza cosa sfratterà il gioco. Tieni presente quanto sono in particolare i giochi ad alta intensità di risorse, quindi è probabile che ucciderà l'app prima e poi.

Ora la ragione per cui scompare dopo il tempo è che probabilmente hai processi di sincronizzazione che cercano di avviare e competere per le risorse. Le pagine di memoria delle app sono state colpite molto raramente a questo punto, quindi è giusto il gioco per qualsiasi recupero di memoria che il sistema operativo ritiene necessario.

Alla tua seconda domanda;

come posso impostarlo per consentire a questa app di continuare a funzionare?

Non uso un task killer, ma sono abbastanza sicuro che quelli buoni (sembra che ATK sia il leader https://market.android.com/details?id=com.rechild.advancedtaskkiller&feature=search_result ) hanno un'eccezione elenco. Potrebbe essere possibile inserire nella lista bianca il gioco desiderato e inserire nella lista nera gli altri processi.

Inoltre non ho familiarità con questo gioco, quindi non sono sicuro di quali abilità di auto-salvataggio e questo abbia. Spero di essere stato di aiuto.


1

Come ottenere maggiori informazioni su quali app vengono uccise e perché?

Puoi collegare il tuo telefono ad adb ; e quindi attivare logcat ; salvataggio dell'output su file.
Nel file di registro avrai tonnellate di informazioni; cercando il nome dell'app; puoi scoprire quando viene ucciso.

Cosa puoi fare per impedire che venga arrestato dal sistema Android?
Non lo so; si spera che una risposta efficace funzioni.
Tuttavia; Vorrei contattare lo sviluppatore e dirgli il problema, perché dovrebbe avere il tempo più semplice per risolverlo


Stavo per menzionare la soluzione logcat. Voglio solo aggiungere che hai anche cercato ActivityManager (è il "task killer" interno di androidi). Non puoi impedire ad Android di uccidere app. L'idea Android è che se un processo dell'app viene completamente interrotto, l'app dovrebbe essere in grado di ripristinare il suo stato precedente. Quindi gli sviluppatori di app devono assicurarsi di non avviare il gioco dall'inizio.
Flusso
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.