バックグラウンドで異なるタスクを実行するために、アクション バーに 2 つの項目を設定して、2 つの別々の非同期タスクを開くことができました。
最初の項目は、画像をダウンロードして SD カードに保存するだけの AsyncTask クラスを起動します。
2 番目の項目は、画像をダウンロードしてユーザーの壁紙として設定する AsyncTask クラスを起動します。
私が抱えている問題は、2 番目の項目を押すと (Setwallpaper)、2 つのクラス (ユーザーの壁紙を保存して設定する) で区切られた 2 つのタスクを同時に実行することです。
次に、他の起動コード (setwallpaper/その逆) を削除すると、同時に 2 つではなく、1 つのタスクが実行されます。
なぜこれがこのように振る舞うのかわかりません。誰かが私を助けてくれますか。ありがとう...
コード:
@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);
}