5

アプリが正常に実行されており、アクティビティ A が表示されているとします。その後、ユーザーは電話をロックします。A は忠実に眠りにつく ( onPause())。画面がオフの間のある時点で、ユーザーに何かを表示する必要があります。したがって、バックグラウンド コード (サービス) から、B の startActivity を呼び出し、次のフラグを渡します。

FLAG_ACTIVITY_CLEAR_TOP
FLAG_ACTIVITY_NEW_TASK

そしてonCreate()Bの中で、私は次のウィンドウフラグを追加します

FLAG_SHOW_WHEN_LOCKED 
FLAG_TURN_SCREEN_ON 
FLAG_DISMISS_KEYGUARD 

すべて正常に動作します - B がキーガードの上に表示されます。

後で、B を却下したいので、BI call 内からdismiss()期待どおりに動作します。ロック画面に戻る代わりに、ロック画面の上で A を実行しています。

B を閉じたときに OS が A を再開しないようにするにはどうすればよいですか?

ありがとう。

4

1 に答える 1

0

私が正しいと思うなら、Android はアプリに属する​​アクティビティ スタックの次のアクティビティを表示するだけです。アクティビティ B の終了時にホーム画面などの別のアプリを呼び出して、ロック画面が前面に表示されるようにします。

フラグを使用することもできますFLAG_ACTIVITY_EXCLUDE_FROM_RECENTS:

設定されている場合、新しいアクティビティは最近開始されたアクティビティのリストに保持されません。

于 2013-01-25T07:20:10.027 に答える