これが私の活動です。
<activity
android:name=".MainActivity_Hard"
android:configChanges="keyboardHidden|orientation|screenSize"
android:label="@string/title_activity_main_activity__hard"
android:noHistory="true"
android:screenOrientation="portrait" >
</activity>
画面をアクティビティスタックに追加したくないので、android:noHistory = "true"とマークしました。
しかし、画面をロックしてロックを解除すると、アクティビティが消え、前の画面が表示されます。これは起こらないはずです。理由を誰かに教えてもらえますか?
注:これはICS(Samsung Galaxy Note)で発生しますが、以前のデバイス(Gingerbreadなど)では発生しません。
回答:
回答№1の場合は3アクティビティにnoHistory属性を設定するつまり、ユーザーがそのアクティビティから離れると(含まれているロック画面を表示します)、そのfinish()関数が自動的に呼び出され、それが破棄されて、それを生成した前のアクティビティに戻ります。
これは通常、たとえば、ランチャーとしてのみ機能し、ユーザーが子からスプラッシュスクリーンに戻ることができないようにするスプラッシュスクリーンタイプのアクティビティに使用されます。
これがあなたの意図でない場合は、noHistory属性を削除し、アクティビティのライフサイクルを自分で管理することを検討してください。 (たとえば、アクティビティをスタックに入れたくない場合は、別のアクティビティが開始された直後に、単にfinish()を呼び出します。)
アクティビティを削除する必要があるかどうかから アクティビティスタックが終了すると(そのfinish()メソッドが呼び出され)、 ユーザーがそこから移動すると、画面に表示されなくなります— 終了する必要がある場合は「true」、終了しない場合は「false」。デフォルト値 「false」です。 「true」の値は、アクティビティが終了しないことを意味します 歴史的なトレース。のアクティビティスタックには残りません。 タスク、したがって、ユーザーはそれに戻ることができなくなります。
回答№2の場合は0
理由はわかりません。 ただし、このアクティビティを現在のスタックに追加したくない場合は、android:launchMode = "singleTask"を設定できます。このアクティビティを開始すると、独自のスタックに追加されます。 もっと見ることができます ここにリンクの説明を入力してください それが役立つことを願っています:)
回答№3の場合は0
AndroidManifest.xmlで、この許可タグをアプリケーションタグの上に置きます。
<uses-permission android:name="android.permission.WAKE_LOCK" />