我想同时运行2个方法。然而,它只显示了第二种方法的输出。你能帮帮我吗?
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();发布于 2016-04-27 20:30:22
策略取决于你的任务。
不要将AsyncTask用于同时执行的作业,因为默认情况下它是串行执行的。
如果你不需要修改UI,你的第一次尝试可以是java线程。
您可以通过以下方式将结果发布到UI线程
要处理位图图像,请考虑使用HandlerThread。
发布于 2016-04-27 20:44:17
你可以使用两个独立的线程
// Create two threads:
Thread thread1 = new Thread() {
public void run() {
Run1();
}};
Thread thread2 = new Thread() {
public void run() {
Run2();
}};
// Start the both threads.
thread1.start();
thread2.start();
// Wait for them both to finish
thread1.join();
thread2.join();发布于 2016-04-27 20:24:45
始终在线程池上执行异步任务
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);如果它起作用了,请告诉我。
https://stackoverflow.com/questions/36889747
复制相似问题