【发布时间】:2013-12-23 09:12:43
【问题描述】:
我有一个要求,我需要对服务器进行轮询,从服务器获取一些事件并对这些事件执行操作。所有这些都必须异步并定期完成。
所以我编写了一个扩展IntentService 的类,并在其onHandleIntent 方法中启动了我的线程。
代码如下:-
MyService.java
public class MyService extends IntentService{
private String tag = "MyService";
public MyService() {
super("MyService");
}
@Override
protected void onHandleIntent(Intent intent) {
Log.d(tag, "onHandleIntent");
TestThread.startThread();
}
}
TestThread.java
public class TestThread {
private static Timer threadTimer = new Timer();
private static long pollingInterval = 5000;//in milliseconds
private static boolean pollingStarted = false;
public static void startThread() {
threadTimer.schedule(new TestTimer(), 0, pollingInterval);
pollingStarted= true;
}
private static class TestTimer extends TimerTask {
@Override
public void run() {
//get event lists
//do some work on the even list
}
}
}
在TestThread.java中,它从服务器获取一些事件列表,并根据事件执行任务。
在android website 他们说
服务根据需要启动,依次使用 工作线程,并在工作结束时自行停止。
所以我的问题是,轮询会在上述实施中继续吗?如果不是上述要求的正确实现。
【问题讨论】:
标签: java android multithreading intentservice