gpt4 book ai didi

android - 如何在一个 Activity 中运行两个 AsyncTasks?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:14:42 25 4
gpt4 key购买 nike

我有两个 Activity s ( mainActivity & downloadActivity ) 我有 2 AsyncTaskdownloadActivity

downloadActivity首先它执行 getFileAsyncTask用于读取 JSON 文件以添加一些图像并创建 ListView从图片中,如果用户点击图片,downloadAsyncTask被调用,它开始从互联网上下载一些东西。我的问题在这里:当第二个 AsyncTask正在运行我回到mainActivity再次回到downloadActivity第一个AsyncTask直到 downloadAsyncTask 才被调用完成。

public class downloadActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
...
new getFileAsyncTask().execute();
...
}
private class getFileAsyncTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
//fetch a json file from internet and add images in ListView
return null;
}
}
//there is a Base Adapter class
//if user clicks on an image it calls this downloadAsyncTask.execute()
private class downloadAsyncTask extends AsyncTask<Void, Integer, Void> {
@Override
protected void onPreExecute() {
//download the file
}
}

@Override
protected Void doInBackground(Void... unused) {
//download the file
}
}

注意:我想写一些类似购物的应用程序。例如,用户可以下载文件并浏览商店以查看产品。

最佳答案

如果你想并行运行多个 AsyncTasks,你可以调用 executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR) 而不是 execute()任务。默认情况下,AsyncTasks 串行运行,先到先得。

注意不要让两个线程在同一数据上进行交互,这可能会导致一些奇怪且难以追踪的错误。

关于android - 如何在一个 Activity 中运行两个 AsyncTasks?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23911220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com