我已在操作栏上成功设置了2个项目,以打开2个单独的异步任务,以在后台执行不同的任务。
我的第一个项目启动了一个AsyncTask类,它只下载图像并将它们保存到SD卡。
My Second item启动AsyncTask类,下载图像,然后将其设置为用户壁纸。
我遇到的问题是,当按下第二个项目(Setwallpaper)时,它将同时执行由2个类别分隔的2个任务(保存并设置用户壁纸)。
然后,当我删除其他启动代码(setwallpaper /反之亦然)时,它将执行一项任务,而不是同时执行两项任务。
我不知道为什么这样做会有人帮助我。感谢...
代码:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
// TODO Add your menu entries here
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.test, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.SaveWallpaper:
new SaveWallpaperAsync(getActivity()).execute(mImageUrl);
return true;
case R.id.SetWallpaper:
new SetWallpaperAsync(getActivity()).execute(mImageUrl);
return true;
}
return super.onOptionsItemSelected(item);
}
答案 0 :(得分:2)
尝试这样的事情:
class SaveWallpaperAsync extends AsyncTask {
doInBackground(...) {
image = Utils.downloadImage(...);
Utils.saveToSdCard(image);
}
}
class SetWallpaperAsync extends AsyncTask {
doInBackground(...) {
image = Utils.downloadImage(...);
Utils.setBackground(image);
}
}
答案 1 :(得分:1)
案例之间没有中断:)虽然返回应该做同样的想法,你应该尝试在返回后使用break