私はしばらくこれに悩まされています。別のThread
/AsyncTask
が実行されているときに、画面の向きの変更を正しく処理するにはどうすればよいですか?現在、私は私のAndroidManifest.xml
でAsyncTasksが実行されているときにハンドルの向きが変わります
android:configChanges="orientation|keyboard|keyboardHidden"
を持っているが、それはnot really encouragedです:
注:この属性を使用するには、唯一の最後の手段として回避して使用する必要があります。構成の変更により再起動を適切に処理する方法の詳細については、「実行時の変更の処理」を参照してください。
また、2.3エミュレータで、それはlandscape
への切り替え時に動作しますが、portrait
に戻って切り替えが失敗しました。
私がconfigChanges
を使用する理由は、ユーザーが向きを変えたときに、ネットワークトラフィックを実行している可能性があります。
これを行う方法はありますか、2.3を固定してポートレートに戻す方法がありますか?
は、私は約onRetainNonConfigurationInstance
知っているが、私はAsyncTask
を拡張するクラスは静的ではありません(それはActivity
に結びついている)主な理由は、AsyncTask
インスタンスを「保存」することをお勧めだろうか分かりません - onPostExecute()
の場合は、Activity
インスタンスからメソッドを呼び出します。
'Service'を実装するよりもずっと簡単です。ありがとう。 – Felix
@Flo私はこの記事が投稿されてからしばらくしていることを知っていますが、私は同じことをやろうとしていますが、あなたが何を意味するのかよく分かりません。 "タスクが終了したときに通知するには、 Applicationクラスに自身を登録するために使用します。例があれば? (私はjavaとandroid1の新機能です) – Bex
申し訳ありませんが、コード例はありません。しかし、[オブザーバーパターン](http://stackoverflow.com/questions/2483644/rosetta-stone-observer-pattern)を見てください。あなたが「レジスタ」(update())と私が何を意味するのかを理解していただきたいと思います。 "通知"(addObserver())。 – Flo