我正在尝试在指定的时间内检查变量。例如,我得到一个变量: int downloadProgress = 0;
我得到了一些下载文件的代码,var downloadProgress正在更新为1..2.3 .... 5.6..7。直到..100(下载完成)。
现在我想要一个如下的线程:
Runnable checkNet = new Runnable(){
public void run(){
// check variable changes
}
};
在指定的时间内检查变量downloadProgress中的更改,比如说20秒。如果变量至少比我想要做的事情没有改变20秒!
我如何利用计时器在一个线程中执行此操作!!
答案 0 :(得分:2)
你可以使用计时器:http://developer.android.com/reference/java/util/Timer.html在这种情况下你不需要一个线程,因为Timer是一个线程
以下是示例:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
tv = new TextView(this);
this.setContentView(tv);
MyCount counter = new MyCount(5000,1000);
counter.start();
}
public class MyCount extends CountDownTimer{
public MyCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onFinish() {
tv.setText(”done!”);
}
@Override
public void onTick(long millisUntilFinished) {
tv.setText(”Left: ” + millisUntilFinished/1000);
}
}
}