我想知道如何在另一个类中正确退出 while 循环。
我的“从属”应用程序通过我的“主应用程序”与 WebSocket 连接。这个“从属应用程序”正在检查目录中是否有新文件。对于未来,它将分析这些新文件。
在我的从属应用程序中,我有 Callback 告诉我它是否已启动/暂停/停止...
我想要的是在我的“主应用程序”启动时启动我的循环方法(通过我的回调启动?),在我的主应用程序停止时停止我的循环......并且......
我的循环类:
public class Loop extends Thread {
private boolean progIsFinished;
public Loop() {
}
public void run() {
try {
waitingForFiles();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void waitingForFiles() throws Exception {
progIsFinished = false;
final File folder = new File("folder");
long sleepDuration = 10000;
ArrayList<File> newFileList;
int counter = 0;
while (progIsFinished != true) {
newFileList = listLastModifiedFiles(folder, sleepDuration);
Thread.sleep(sleepDuration);
}
}
public static ArrayList<File> listLastModifiedFiles(File folder, long sleepDuration) throws Exception {
ArrayList<File> newFileList = new ArrayList<File>();
// return the new file
return newFileList;
}
}
我的主要课程:
private Main(){
// read conf.xml and stores variables
readConfig();
if ( ServerConnected ) {
// connect to server via URL
connect( serverURL );
} else
System.out.println("No Conf or No connexion");
}
@Override
public void connectCallback() {
System.out.println("CONNECTED");
}
@Override
public void startCallback() {
// debug
System.out.println("SIMULATION IN PROGRESS");
loop = new Loop(this);
try {
loop.start();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void stopCallback() {
// debug
System.out.println("SIMULATION STOPPED");
}
@Override
public void pauseCallback() {
// debug
System.out.println("SIMULATION IN PAUSE - WAIT FOR RESUME");
}
public static void main(String[] args) {
Main main = new Main();
}
}