Introdução:
Alguns aplicativos front-end, como: precisam atualizar informações meteorológicas, atualizar postagens, atualizar informações etc.
Este artigo o apresenta por meio de receptores de serviço e transmissão. É atualizada a cada 3 segundos, mas devido ao desempenho do telefone móvel, a atualização pode demorar alguns segundos.
Etapa 1: MainActivity.java abre o serviço
pacote com.huwan.broadcastwithservicedemo;
importar android.app.Activity;
importar android.content.Intent;
importar android.os.Bundle;
public class MainActivity estende Activity {
@Sobrepor
void protegido onCreate (Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView (R.layout.activity_main);
// Inicia o serviço
Intenção intenção = nova Intenção (this, LongRunningService.class);
startService (intenção);
}
}
Etapa 2: código de serviço LongRunningService.java
pacote com.huwan.broadcastwithservicedemo;
importar java.util.Date;
importar android.app.AlarmManager;
import android.app.PendingIntent;
importar android.app.Service;
importar android.content.Intent;
importar android.os.IBinder;
importar android.os.SystemClock;
importar android.util.Log;
classe pública LongRunningService estende Service {
@Sobrepor
public IBinder onBind (intenção de intenção) {
return null;
}
@Sobrepor
public int onStartCommand (Intent intent, int flags, int startId) {
novo segmento (novo Runnable () {
@Sobrepor
public void run () {
Log.e ("LongRunningService", "executado em" + new Date (). ToString ());
}
}).começar();
Gerenciador do AlarmManager = (AlarmManager) getSystemService (ALARM_SERVICE);
// int anHour = 60 * 60 * 1000;
int anTime = 3 * 1000; // log a cada 3 segundos
longo triggerAtTime = SystemClock.elapsedRealtime () + anTime;
Intenção i = new Intent (this, AlarmReceiver.class);
PendingIntent pi = PendingIntent.getBroadcast (este, 0, i, 0);
manager.set (AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtTime, pi);
return super.onStartCommand (intent, flags, startId);
}
}
Etapa 3: Receptor de serviço AlarmReceiver.java, solicite o serviço novamente após receber o serviço
pacote com.huwan.broadcastwithservicedemo;
importar android.content.BroadcastReceiver;
importar android.content.Context;
importar android.content.Intent;
classe pública AlarmReceiver estende BroadcastReceiver {
@Sobrepor
public void onReceive (contexto de contexto, intenção de intenção) {
Intenção i = new Intent (contexto, LongRunningService.class);
context.startService (i);
}
}
A interface principal inicia um serviço, o serviço envia uma tarefa cronometrada e o receptor de transmissão recebe a tarefa e reinicia o serviço novamente, o que equivale a um daemon.
Download do exemplo de demonstração: http://www.huwan.xin/Source/AppPackage/ZIP/Android/BroadcastWithServiceDemo.rar
Leitura de referência: desenvolvimento Android - atualize os dados ou feche a interface através do modo de design do observador
Leitura de referência: transmissão estática de desenvolvimento para Android (incluindo transmissão para transmitir valor à atividade), introdução à transmissão dinâmica (ordenada / não ordenada)
Leitura de referência: desenvolvimento Android-Android sai de vários processos de atividade / fecha várias interfaces ao mesmo tempo / fecha a interface anterior
Os documentos acima podem resolver como atualizar a interface após atualizar regularmente.
Para mais informações, visite: www.huwan.xin