18

画面をオフにしたときにアクティビティが再作成されないようにするにはどうすればよいですか?

私がやること

  1. Bejewelsを起動し、ジュエリー画面に移動します。
  2. 電源ボタンをすぐに押します。画面はオフになっていますが、デバイスはオフになっています。
  3. 電源ボタンをもう一度押します。

私が見るもの

画面をオフにする前と同じ画面。

私のアプリケーション(簡単なもの、単一のWebViewを備えたWebアプリのみ)の場合、シナリオは次のとおりです。

私がやること

  1. アプリを起動します。アクティビティonCreate()メソッドは、URLをWebViewにロードします。
  2. 電源ボタンをすぐに押します。画面はオフになっていますが、デバイスはオフになっています。
  3. 電源ボタンをもう一度押します。

私が見るもの

WebViewはページをリロードしています。

私が期待したこと

Bejewelsの場合と同じように、同じ画面を見たいのですが、私のアプリの場合は、スクリプトが実行されている、フォームフィールドに入力されているなど、以前の状態のページです。

デバッグの結果、(前の質問で)私が間違っていて、画面がオンになったばかりのときにonDestroy()とonCreate()が1つずつ呼び出されていることがわかりました。また、スクリプトで再生される音楽がまだ聞こえているので、画面がオフのときは、電源ボタンをもう一度押すまで、アクティビティとWebViewの両方が存在するように見えます。

私が試したこと。

  1. android:alwaysRetainTaskState="true"同じ動作。
  2. 意図について読む(無駄に、私はそれらが私の状況にどのように適用されるかを理解していませんでした)。
  3. PhoneGapの使用。動作が異なります。電源ボタンを押すと、アプリケーション全体が強制終了されます。これは優れていますが、最善ではありません。
4

3 に答える 3

29

この問題の解決策は、ここで説明されているものと同じである可能性があります: onDestroy は、画面がオンになるたびに呼び出されます。

設定の変更によりアクティビティが再開されているようです。 http://developer.android.com/guide/topics/resources/runtime-changes.htmlを参照してください。最も一般的なのは、アプリが横向きモード (ほとんどのゲームと同様) であり、電源ボタンをタップして画面をロックする場合です。画面ロックは縦向きモードであるため、方向の変更がトリガーされ、アクティビティが再開されます。

この動作は、次を追加することでオーバーライドできます。

android:configChanges="orientation|keyboardHidden"

... 13 未満の API レベルをターゲットにしている場合は、マニフェスト ファイルに追加します。または

android:configChanges="orientation|keyboardHidden|screenSize"

... 13 を超える API レベルをターゲットにしている場合。

project->properties に移動して、プロジェクトのビルド ターゲットを更新する必要がある場合があることに注意してください。ビルド ターゲットが 13 未満の場合、「screenSize」は認識されません。

アクティビティがリセットされる原因となっているのは、別の構成変更である可能性があります。次のリンクは、可能な構成変更のリストを提供します: http://developer.android.com/guide/topics/manifest/activity-element.html#config

于 2012-12-27T18:05:14.817 に答える
1
  1. Application.onCreate() でビューを作成します。
  2. Activity.onCreate() でビューをレイアウトに追加します。
  3. Activity.onDestroy() でレイアウトからビューを削除します。

詳細はこちら: レイアウトへの/からの Android ビューのアタッチ/デタッチ

于 2012-05-09T10:56:31.780 に答える
1

追加:

android:launchMode="singleTop"

マニフェスト xml のアクティビティ部分に。ここを参照してくださいhttp://developer.android.com/guide/topics/manifest/activity-element.html

于 2012-05-08T12:32:44.567 に答える