是否可以在同一活动中执行单独的网络线程而无需等待?

时间:2015-05-15 12:14:19

标签: java android multithreading

我正在执行两个扩展ASyncTask的类,它们都有不同的功能,但由于second类我的第一堂课是滞后的。所以我想知道的是,有没有更好的代码解决方案,以便两个操作都能执行任务而不需要等待其他操作?

已更新代码 对于onCreate()

中的第一个电话
new connection().execute(); //

由同一个类执行的一些任务称为

 public class connection extends AsyncTask {
    @Override
    protected Object doInBackground(Object... arg0) {
       //some operation
        return value;
    }

    @Override
    protected void onPostExecute(Object o) {
        super.onPostExecute(o);
        String m = String.valueOf(o);
        if (o != null) {
           someoperation
        } else {
            edittxt.setTextColor(Color.RED);
            edittxt.setText("No Internet Connection");
        }
    }
}

同样地,我正在执行我所拥有的其他课程。

2 个答案:

答案 0 :(得分:2)

您可以将AsyncTask.executeOnExecutorTHREAD_POOL_EXECUTOR一起使用,默认执行者为SERIAL_EXECUTOR

答案 1 :(得分:0)

您可以创建两个单独的线程并执行操作。它将隔离,所有操作都将执行异步。

final Handler handler = new Handler();

        Thread operation1 = new Thread(new Runnable() {
            @Override
            public void run() {
                doOperation1();
                handler.run(new Runnable(){
                    @Override
                    public void run() {
                        onPostExecute1();
                    }
                });
            }
        });

        Thread operation2 = new Thread(new Runnable() {
            @Override
            public void run() {
                doOperation2();
                handler.run(new Runnable(){
                    @Override
                    public void run() {
                        onPostExecute2();
                    }
                });
            }
        });

        operation1.start();
        operation2.start();