直接上代碼
輪詢服務
public class PollingService extends Service {
public static final String ACTION = "包名.service.PollingService";
private static final String TAG = "PollingService";
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate( ) {
}
@Override
public void onStart(Intent intent,int startId) {
new PollingThread().start();
}
/**
* Polling thread
* 模擬向Server輪詢的異步線程
*/
int count = 0;
class PollingThread extends Thread {
@Override
public void run( ) {
System.out.println("Polling...");
count++;
//當計數能被2整除時彈出通知
if (count % 2 == 0) {
// System.out.println("New message!");
//任務處理
}
}
}
@Override
public void onDestroy( ) {
super.onDestroy();
System.out.println("Service:onDestroy");
}
}
使用方法
public class PollingUtils {
private static Timer timer;
//開啟輪詢服務
public static void startPollingService(final Context context,int seconds,Class<?> cls,String action) {
//包裝需要執(zhí)行Service的Intent
final Intent intent = new Intent(context,cls);
intent.setAction(action);
timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run( ) {
context.startService(intent);
}
},1000,2000);
}
//停止輪詢服務
public static void stopPollingService(Context context,Class<?> cls,String action) {
Intent intent = new Intent(context,cls);
intent.setAction(action);
context.stopService(intent);
timer.cancel();
}
}
開始使用輪詢
PollingUtils.startPollingService(this,1,PollingService.class,PollingService.ACTION);
結束使用輪詢
PollingUtils.stopPollingService(this,PollingService.class,PollingService.ACTION);