我必须在两次调用之间调用web服务的持续时间I minutes.Parameters of web services是基于一个旋转器值selection.When我选择了一个不同的值,现在这个web服务在minute.After第三项选择中调用它自己两次,它在一分钟内调用服务三次。我所需要的web服务应该只被调用一次。
final Handler handler = new Handler();
Timer timer = new Timer();
TimerTask task = new TimerTask() {
@Override
public void run() {
handler.post(new Runnable() {
public void run() {
try {
new FilteredProductionWebAPITask(
SpeedometerActivity.this)
.execute(branchId);
System.out.println("Service:"+counter++ +"Times");
} catch (Exception e) {
// TODO: handle exception
new FilteredProductionWebAPITask(
SpeedometerActivity.this)
.cancel(true);
alert(getResources().getString(
R.string.noData));
}
}
});
}
};
timer.schedule(task, 0, 60 * 1000);发布于 2013-12-11 20:14:09
在应用程序启动时,您可以使用以下代码在每1个minute.you需要启动方法后调用web服务
mHandler.sendEmptyMessage(CALL_WEB);
private static final int CALL_WEB= 2;
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case CALL_WEB:
Callwebserviceinasync(spinnervalue);
sendMessageDelayed(msg, 60*1000);
break;
}
}
};发布于 2013-12-11 20:14:54
试试看可能会有用
final Handler handler = new Handler();
Timer timer = new Timer();
TimerTask task = new TimerTask() {
@Override
public void run() {
handler.post(new Runnable() {
public void run() {
try {
new FilteredProductionWebAPITask(
SpeedometerActivity.this)
.execute(branchId);
System.out.println("Service:"+counter++ +"Times");
} catch (Exception e) {
// TODO: handle exception
new FilteredProductionWebAPITask(
SpeedometerActivity.this)
.cancel(true);
alert(getResources().getString(
R.string.noData));
}
}
});
}
};
timer.schedule(task, 0, (60 * 1000)/spinnerValue);其中spinnerValue是1,2,3....
https://stackoverflow.com/questions/20518133
复制相似问题