PROBLEMA [C#] Consumo batteria eccessivo

Pubblicità

Daniele00

Utente Attivo
Messaggi
209
Reazioni
10
Punteggio
40
Salve.
Ho realizzato un applicazione (C# Xamarin android) che scansiona (una volta ogni 150 millisecondi circa) una directory, nel caso in cui i file risultassero diversi da quelli della scansione precedente copia i file in più in un altra cartella. Tutto questo mediante un servizio sempre attivo.

Funziona, solo che consuma troppa batteria, a fine giornata solo lei prende un buon 10%.

Avete qualche idea per ridurre questo consumo? :muro:
(se conoscete un applicazione già presente su play store che fa questa cosa specifica è ben accetta, ma dubito possa esistere)
 
Non sono un esperto di programmazione, ma ad intuito penso che un aggiornamento ogni 150 millisecondi é come avere un processi attivo sempre.
Questo processo impegna cpu, rete internet e memoria telefono costantemente.

Prova a cambiare il tempo di aggiornamento, penso che per un backup sia sufficiente anche un aggiornamento ogni 12 ore.
 
Non sono un esperto di programmazione, ma ad intuito penso che un aggiornamento ogni 150 millisecondi é come avere un processi attivo sempre.
Questo processo impegna cpu, rete internet e memoria telefono costantemente.

Prova a cambiare il tempo di aggiornamento, penso che per un backup sia sufficiente anche un aggiornamento ogni 12 ore.


È necessario ai fini dell'utilizzo che l'aggiunta di file venga "sincronizzata" quanto più celermente possibile, Forse dovrei intervenire sull'algoritmo e provare ad alleggerirlo, ma non mi viene in mente nulla :varie13:
 
Controlla bene la documentazione di C#, dovrebbe esserci una classe che permetta di monitorare i cambiamenti di una cartella e avvisarti con una notifica. Scansionare una cartella ogni 100millisec non è una buona idea, non solo consuma molta batteria ma rende tutto il dispositivo più lento.
 
Controlla bene la documentazione di C#, dovrebbe esserci una classe che permetta di monitorare i cambiamenti di una cartella e avvisarti con una notifica. Scansionare una cartella ogni 100millisec non è una buona idea, non solo consuma molta batteria ma rende tutto il dispositivo più lento.


Confidavo nella classe SystemFileWatcher, ma su android (benché la compilazione vada a buon fine) non è supportata.

Sto provando con "Android.OS.FileObserver", Ma non riesco a farlo "rimanere in ascolto" in background insieme al servizio, smette di reagire agli eventi (creazione file ecc...) appena chiusa l'app. (L'istanza dell'oggetto FileObserver viene creata nel servizio, eppure non rimane in ascolto)
 
Pubblicità
Pubblicità
Indietro
Top