Pergunta

Eu estou tentando construir um SyncAdapter que deve ser executado a cada poucos segundos para a verificação rápida de dados específicos.Estou usando o seguinte código para executar SyncAdapter

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

e o sync é trigerred correctamente no entanto, notei que é chamada apenas uma vez a cada dez minutos.Baseado em android formação http://developer.android.com/training/sync-adapters/running-sync-adapter.html dizendo:

Quando uma conexão de rede está disponível, o sistema Android envia uma mensagem a cada poucos segundos para manter o dispositivo TCP/IP conexão aberta.Esta mensagem também vai para o ContentResolver de cada app.Chamando setSyncAutomatically(), você pode executar a sincronização adaptador sempre que o ContentResolver recebe a mensagem.

A conexão de rede i, no entanto, é apenas a conexão 3G, nem wi - Fi- é esta uma razão de esperar muito tempo?Como posso fazer o meu adaptador para ser executado a cada 10 segundos?Eu já tentei usar a sincronização periódica

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

mas continua a ser executado a cada 10 minutos.

Foi útil?

Solução

Você é vítima do android SyncManager.Considere este cenário:adicionar um a cada 10 minutos de sincronização para o seu aplicativo, mas você tem instalado o meu aplicativo no seu telefone, que também pede o gerente de um a 10 minutos a sincronização periódica e a minha aplicação fez o agendamento de exigência de um segundo antes de que o seu :) A operação de sincronização do meu aplicativo envolve a transferência de grandes cargas de dados, daí a utilizar a totalidade ( ou quase ) de largura de banda da conexão de internet disponível.O smart SyncManager vai ver que não é aconselhável iniciar outro processo de sincronização até que o anterior é feito, e assim ela vai esperar o processo terminar, e só depois o fogo da sincronização.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top