web-dev-qa-db-ja.com

android android $ ===

Androidで、ユーザーが向きを変更したときに、アクティビティでasynctaskクラスを使用してアクティビティを再読み込みしないようにするにはどうすればよいですか?誰かが例をあげることができますか?

17
mohan

Chiragはすでに解決策を正しく指摘しています。

追加したいのですが、Activityの再起動はその中のAsyncTaskとは何の関係もありません。デフォルトでは、構成の変更があると、構成の変更がアクティビティによって明示的に処理されない限り、アクティビティが再開されます。これは、マニフェストファイルにエントリを作成することによって行われます。

このリンク開発者ガイドに目を通します: Android:configChanges

[〜#〜]注[〜#〜]:エミュレーターではないデバイスのコードを確認してください。以前に同じような問題に直面したからです。同じコードはエミュレーターでは機能しませんでしたが、デバイスでは完全に機能しました。したがって、マニフェストにAndroid:configChangesのエントリを追加し、エミュレータではなくAndroidデバイスでアプリケーションを確認します。

そして私は2番目の@hackbodです。 必要な場合にのみ実行してください!

2
Udayan

最後の手段として、構成の変更をオフにしてください。これが発生した場合、アプリは必須正しく機能します。方向設定の変更が壊れたためにオフにした場合でも、アプリは他の、場合によってはより微妙な方法で壊れます。オリエンテーション設定の変更によりアクティビティを再開できるようにすることは、アプリのこれらの重要なコードパスを簡単にテストするための非常に優れた方法です。

アクティビティインスタンス間でアクティブオブジェクトを転送するには、インスタンス間で保持されるフラグメントを作成できる新しいフラグメント静的ライブラリを使用します。

77
hackbod

向きが変わったときに開いた2つの「アラート」ダイアログを保持するにはどうすればよいですか?私を信じてください、2つのダイアログを開いた状態で3つのフラグメントアクティビティを再開するのは簡単ではありません。プログラマーには、不必要なプログラミングを行う時間がありません。アプリの一部の向きの変更を停止するか、常にブロックする方が簡単です。

0
TomeeNS