1

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.

Eli Elezra
  • 525
  • 2
  • 4
  • 18

1 Answers1

1

Using the single thread executor, just don't spawn any more Threads:

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();
npace
  • 4,218
  • 1
  • 25
  • 35