首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >异步任务android

异步任务android
EN

Stack Overflow用户
提问于 2016-04-27 20:23:39
回答 4查看 280关注 0票数 0

我想同时运行2个方法。然而,它只显示了第二种方法的输出。你能帮帮我吗?

代码语言:javascript
复制
    new AsyncTask<Void, Void, Bitmap>() {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();

        }
        @Override
        protected Bitmap doInBackground(Void... params) {

            Run1(); 
            Run2();

            return currentBitmap;
        }
        @Override
        protected void onPostExecute(Bitmap bitmap) {
            super.onPostExecute(bitmap);
            if(bitmap!=null) {

                loadImageToImageView();
            }
        }
    }.execute();
EN

回答 4

Stack Overflow用户

发布于 2016-04-27 20:30:22

策略取决于你的任务。

不要将AsyncTask用于同时执行的作业,因为默认情况下它是串行执行的。

如果你不需要修改UI,你的第一次尝试可以是java线程。

您可以通过以下方式将结果发布到UI线程

  • Activity.runOnUiThread(Runnable)
  • View.post(Runnable)
  • View.postDelayed(Runnable,long)

要处理位图图像,请考虑使用HandlerThread

票数 1
EN

Stack Overflow用户

发布于 2016-04-27 20:44:17

你可以使用两个独立的线程

代码语言:javascript
复制
// Create two threads:

Thread thread1 = new Thread() {
public void run() {
    Run1();
}

};

代码语言:javascript
复制
Thread thread2 = new Thread() {
public void run() {
  Run2();
}

};

代码语言:javascript
复制
// Start the both threads.
 thread1.start();
 thread2.start();

// Wait for them both to finish
thread1.join();
thread2.join();
票数 1
EN

Stack Overflow用户

发布于 2016-04-27 20:24:45

始终在线程池上执行异步任务

代码语言:javascript
复制
new AsyncTask<Void, Void, Bitmap>() {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();

    }
    @Override
    protected Bitmap doInBackground(Void... params) {

        Run1(); 
        Run2();

        return currentBitmap;
    }
    @Override
    protected void onPostExecute(Bitmap bitmap) {
        super.onPostExecute(bitmap);
        if(bitmap!=null) {

            loadImageToImageView();
        }
    }
}.executeOnExecutors(AsyncTask.THREAD_POOL_EXECUTOR);

如果它起作用了,请告诉我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36889747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档