我在android中做一个连接服务器和下载一些块的应用程序。 现在我想让另一个进程做其他工作。这是我的代码
class RemindTask extends TimerTask {
public void run() {
flag = true;
System.out.println(" Hello World!");
Receiveeterations reeterations = new Receiveeterations();
int longCounteterations = reeterations.Geteterations();
System.out.println("longCounteterations " + longCounteterations);
long endTime = System.currentTimeMillis() + 10000;
while (System.currentTimeMillis() < endTime) {
}
IntegerResult = 4;
ThroughPut1+=1;
ThroughPut2=0;
//se mia methodo! pou otan oloklirwnetai i diadikasia tha ti kanei false
flag=false;
}
Timer timer = new Timer();
timer.schedule(new RemindTask(), 0,20000);
///////////////////////////////////////////////////////////////////////////////////////////////////
try {
Thread.sleep(10010);
} catch (InterruptedException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
while (!fileparts.isEmpty() ) { //&& !fileparts1.isEmpty() && (flag == false)
String[] myStringArray = new String[IntegerSpeed];
here i have more code with connectios
}
所以我想做什么,我不知道,是什么时候触发计时器类,而进程将停止。并且在计时器停止过程之后,main方法继续。 我在计时器内尝试thread.sleep,但它没有做任何事情。
答案 0 :(得分:0)
你需要的只是一个正在运行的旗帜...也许这就是你拥有flag
变量的原因?
class RemindTask extends TimerTask {
private boolean runnging = false;
public void run() {
running = true;
[...]
while (running && System.currentTimeMillis() < endTime) {
// work
}
public void stop() {
running = false;
// interrupt the thread if possible
}
}
现在您可以在正在运行的任务上调用stop()
以使其停止