Domanda

Sto cercando di costruire un sindaco che dovrebbe essere eseguito ogni pochi secondi per verificare rapidamente i dati specifici. Sto usando il seguente codice per eseguire SynCadapter

ContentResolver.setIsSyncable(account, CONTENT_AUTHORITY, 1);           
ContentResolver.setSyncAutomatically(account, CONTENT_AUTHORITY, true);
.

E la sincronizzazione viene trigitata Correclty, tuttavia ho notato che è chiamato solo una volta ogni dieci minuti. Basato su Android Training http://developer.android.com/training. /sync-adapters/running-sync-adapter.html dicendo:

.

Quando è disponibile una connessione di rete, il sistema Android invia un messaggio ogni pochi secondi per mantenere il TCP / IP del dispositivo connessione aperta. Questo messaggio va anche al contentresolver di ciascuno app. Chiamando SetSyncautomaticamente (), è possibile eseguire l'adattatore di sincronizzazione Ogni volta che il contentresolver riceve il messaggio.

La connessione di rete che ho disponibile tuttavia è solo una connessione 3G, non WiFi - è una ragione per lungo tempo? Come posso rendere il mio adattatore per correre ogni 10 secondi? Ho già provato a usare la sincronizzazione periodica

ContentResolver.addPeriodicSync(account, CONTENT_AUTHORITY, new Bundle(), 10);
.

Ma è ancora in esecuzione ogni 10 minuti.

È stato utile?

Soluzione

Sei vittima di Android SyncManager.Considerare questo scenario: aggiungi a ogni 10 minuti di sincronizzazione per la tua applicazione, ma hai installato la mia applicazione sul tuo telefono che richiede anche il gestore per una sincronizzazione periodica di 10 minuti e la mia applicazione ha fatto il fabbisogno di riferimento un secondo prima del tuo :)L'operazione di sincronizzazione della mia applicazione comporta un trasferimento di grandi carichi di dati, quindi utilizzando l'intero (o quasi) larghezza di banda della connessione Internet disponibile.Il SyncManager intelligente vedrà che non è saggio avviare un altro processo di sincronizzazione fino a quando non viene effettuato il precedente, e quindi attenderà il processo di fine, e solo in seguito antincendio la sincronizzazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top