Reputation: 535
I would like to run two runnables thread one after one.
Which means that when the first runnable thread complete the second thread starts.
DownSpeedTester speedTester = new DownSpeedTester();
speedTester.setDownUrl(String.valueOf(urlDownload));
new Thread(speedTester).start();
UploadSpeedTester uploadSpeedTester = new UploadSpeedTester();
uploadSpeedTester.setUploadUrl(String.valueOf(urlUpload));
new Thread(uploadSpeedTester).start();
Tried using newSingleThreadExecutor but it didn't succeeded.
ExecutorService es = Executors.newSingleThreadExecutor();
Future< Boolean> result = es.submit(new Callable<Boolean>() {
public Boolean call() throws Exception {
//Download
DownSpeedTester speedTester = new DownSpeedTester();
speedTester.setDownUrl(String.valueOf(urlDownload));
new Thread(speedTester).start();
return true;
}
});
try {
boolean res = result.get();
if (res == true){
//Upload
Log.d("mceeli","UploadSpeedTester");
UploadSpeedTester uploadSpeedTester = new UploadSpeedTester();
uploadSpeedTester.setUploadUrl(String.valueOf(urlUpload));
new Thread(uploadSpeedTester).start();
}
} catch (Exception e) {
}
es.shutdown();
It still running together.
Please Help me.
Upvotes: 1
Views: 615
Reputation: 4258
Using the single thread executor, just don't spawn any more Thread
s:
ExecutorService es = Executors.newSingleThreadExecutor();
DownSpeedTester speedTester = new DownSpeedTester();
speedTester.setDownUrl(String.valueOf(urlDownload));
es.submit(speedTester);
UploadSpeedTester uploadSpeedTester = new UploadSpeedTester();
uploadSpeedTester.setUploadUrl(String.valueOf(urlUpload));
es.submit(uploadSpeedTester);
es.shutdown();
Upvotes: 1