4

3つのファイルをダウンロードするためのAsyncTaskの3つの同時インスタンスがあります。2つの特定のフラグが終了したら、最後にonPostExecute()それぞれによって設定されたフラグをチェックし、両方が真である場合はstartActivity()、次のアクティビティを呼び出します。

私は現在、2回呼び出されるアクティビティ、またはこのタイプの動作に似たものを見ています。画面は次のアクティビティへの「左にスワイプ」のような遷移を実行するため、2回実行されることがあります(そして、私が戻ると、同じアクティビティに戻ります)。アクティビティスタックに配置されているのは、1回だけ呼び出される必要があるアクティビティの2つのバージョンであることは明らかです。

これは、両方のonPostExecute()が同時に実行され、両方がまったく同時に設定されたフラグを互いにチェックしているためでしょうか?2つのプロセスを行ごとに並行して実行する必要があるため、これは非常にありそうにありません...

*****編集***私は間違っていると思っていたので、この質問から多くのことを削除しました。それでも、ここでの答えは非常に有用であることがわかったので、有用な部分を反映するように質問を編集しました。

4

1 に答える 1

1

これが可能であることがわかる唯一の方法は、両方をチェックする直前に「itemXdownloaded」フラグをtrueに設定したため、両方のAsyncTasksのonPostExecute()が同時に実行され、実質的に同じ行を同時に実行していた場合です。 startActivity()を呼び出します。

どちらもメインのアプリケーションスレッドで呼び出されるため、本当に奇妙なことをしているのでない限り、それは不可能です。

症状を読み間違えないように、いくつかの電話を紹介Logします。

downloadIDそれを超えると、示されている3つを超える他の値の可能性がない限り、擬似コードから問題を確認することは困難です。たとえば、がありDL4、とのDL4後に完了するDL1DL2DL4アクティビティがトリガーされます。

于 2010-05-09T00:32:07.940 に答える