標籤:
1.建立PollingThread類,在log列印出“New message!”
class PollingThread extends Thread { @Override public void run() { Log.i("zzf", "Polling..."); } }
2.建立PollingReceiver,用於接收Service傳遞資訊並重新執行PollingService
public class PollingReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub Log.i("zzf", "Receive!"); Intent i = new Intent(context, PollingService.class); context.startService(i); }}
3.建立PollingService定時輪詢任務對象
public class PollingService extends Service { @Override public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { } @Override public int onStartCommand(Intent intent, int flags, int startId) { // TODO Auto-generated method stub //建立PollingThread子線程,用於執行任務 new PollingThread().start(); // 擷取AlarmManager系統服務 AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); // 封裝需要執行Service的Intent Intent i = new Intent(this, PollingReceiver.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, i, 0); int anSeconds = 5 * 1000; // 5秒 // 觸發時間 long triggerAtTime = SystemClock.elapsedRealtime() + anSeconds; manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtTime, pendingIntent); return super.onStartCommand(i, flags, startId); }
4.在MainActivity中啟動PollingService
Log.i("zzf","Start polling service..."); Intent intent = new Intent(this, PollingService.class); startService(intent);
關於Android中的PollingService定時輪詢任務的講解