0

私は3つのコンテキストを持つアプリに取り組んでいます:

MainActivity が行うことは、MonitorService を開始および停止し、ユーザーの指示を表示することだけです。

MonitorService は、呼び出し音の音量の変化を受信するように登録されており、音量の変化を検出すると、ConfirmActivity をポップアップ表示します。

ConfirmActivity は、DialogFragment 内の AlertDialog をポップアップして、ボリュームの変更が意図されたものかどうかを尋ね、ユーザーが変更を確認しない場合はボリュームをリセットします。

私が見ている問題は、MainActivity が停止状態にある場合、ConfirmActivity が開始すると、MainActivity も再起動されて再開されることです。ダイアログが閉じられると、MainActivity は表示されたままになります。これは予想外で戸惑います。MainActivity が破棄されている場合、ConfirmActivity は期待どおりに機能します。

ConfirmActivityを開始するとMainActivityも再起動する理由を誰でも明らかにできますか?

4

1 に答える 1

0

Android は、アプリのどのアクティビティがどの順序で使用されたかを追跡し、アプリがフォアグラウンドになると、それらすべてのアクティビティを一緒に表示します。 ConfirmActivity の場合、MainActivity は ConfirmActivity のすぐ後ろになります。

これを解決するには、アクティビティを開始するときにインテントで指定できるフラグを見てください。アクティビティのスタックの処理方法に影響を与えるものがいくつかあります。おそらくFLAG_ACTIVITY_CLEAR_TASKを使用したいと思います。

于 2013-07-03T21:58:01.110 に答える