美文网首页
后台轮询service

后台轮询service

作者: alsheng | 来源:发表于2018-12-12 15:28 被阅读0次

直接上代码

轮询服务

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);

相关文章

网友评论

      本文标题:后台轮询service

      本文链接:https://www.haomeiwen.com/subject/rhgshqtx.html