1

これが私の活動です。

<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など)では発生しません。

4

3 に答える 3

3

アクティビティにnoHistory属性を設定すると、ユーザーがそのアクティビティから離れるとすぐに(含まれているロック画面が表示されます)、そのfinish()関数が自動的に呼び出され、破棄されて、生成された前のアクティビティに戻ります。それ。

これは通常、スプラッシュスクリーンタイプのアクティビティに使用されます。たとえば、ランチャーとしてのみ機能し、ユーザーが子からスプラッシュスクリーンに戻れないようにする必要があります。

これが意図していない場合は、noHistory属性を削除し、アクティビティのライフサイクルを自分で管理することを検討する必要があります。(たとえば、アクティビティをスタックに入れたくない場合は、別のアクティビティを開始した直後にfinish()を呼び出します。)

android:noHistory

ユーザーがアクティビティスタックから離れて画面に表示されなくなったときに、アクティビティをアクティビティスタックから削除して終了する(finish()メソッドが呼び出される)かどうか。終了する必要がある場合は「true」、終了する必要がある場合は「false」そうでない場合。デフォルト値は「false」です。「true」の値は、アクティビティが履歴の痕跡を残さないことを意味します。タスクのアクティビティスタックに残らないため、ユーザーはタスクに戻ることができません。

于 2012-08-30T05:16:31.170 に答える
0

どうしてか分かりません。ただし、このアクティビティを現​​在のスタックに追加したくない場合。android:launchMode="singleTask"を設定できます。このアクティビティを開始すると、それ自体のスタックに追加されます。あなたはここでもっと見ることができますここにリンクの説明を入力してください それが役立つことを願っています:)

于 2012-08-29T17:07:34.790 に答える
0

AndroidManifest.xmlで、この権限タグをアプリケーションタグの上に配置します。

<uses-permission android:name="android.permission.WAKE_LOCK" /> 
于 2012-08-30T04:57:26.153 に答える