直接上代码
轮询服务
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) {
//包装需要执行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);