1

私の活動では、データベースを開く、sd カードにファイルを書き込むなど、oncreate() で多くの処理が行われます。ただし、この重い処理はすべて、アクティビティが初めて起動されたときに 1 回だけ発生し、その後は発生しません。これを達成するために非同期タスクを使用しています。

次のコードを使用して、デバイス構成の変更中にアクティビティが再開されないようにしています。

if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT){
                    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
                }
                else {
                    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
                }

初期設定時に一度だけ端末の向きが変わったことによるアクティビティの再起動を無効化し、それ以降はアクティビティの再起動を有効にしたい。どうすればこれを達成できますか?

4

3 に答える 3

0

最も簡単な方法は、 を呼び出すことsetRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR)です。ただし、STT LCU が何を言っているのかを考えた方がよいでしょう。ここから始めることをお勧めするいくつかの記事を次に示します。

http://developer.android.com/guide/topics/resources/runtime-changes.html

http://www.vogella.de/articles/AndroidPerformance/article.html#lifecycle

于 2012-02-21T10:11:33.343 に答える
0

「彼らを倒すことができないなら、彼らに加わってください」と彼らは言いました. したがって、アプリケーション ワークフローをより適切に整理する必要があります。

UI 関連の操作を標準のライフサイクル メソッド (onCreate、onStart など) に保持し、他のスレッドに長時間の操作を要求します。

AsyncTask および IntentService クラスをご覧ください。非常に便利です。

要約すると、多くの場合、システム自体に自分の意志に従うよう強制するよりも、コードを基盤となるシステムに適合させる方が簡単です。

于 2012-02-21T07:36:09.187 に答える
0

これをマニフェスト ファイルのアクティビティ タグに追加します

android:configChanges="orientation|keyboardHidden"

于 2012-02-21T07:40:21.200 に答える