アプリ実行中に例外が発生して強制終了した時、全てのアクティビティがスタックから取り除かれずに再開されてしまうため困っています。
途中から開始することなく、最初から始めるにはどうすれば良いでしょうか。
色々調べてみたのですが、どこもアプリが終了するとしか書かれておらずこちらに書かせてもらいました。
(UncaughtExceptionHandlerあたりで何かしらすれば良いとは思うのですが、、、)
機種:
GALAXY Tab SC-01C (Android 2.3.3)
現象:
例外が発生した時、現在表示されているアクティビティと呼び出し元のアクティビティのみスタックから取り除かれる。
それより前に呼ばれたアクティビティは破棄されるもスタックに詰まれたままとなっている。
アクティビティA、B、C、D、Eとあるとき
・A→B→C→D→E の時に例外が発生した時 A→B→C になる
・A→B→C→(D)→E でDをE遷移時に破棄した後で例外が発生した時 A→B→C になる
この時、CからBに戻ったとき、BのライフサイクルはonCreateから始まる(Aも同様)
以上、宜しく御願いします。
別クラスにフラグを用意して、
1.破棄されたときにそいつのフラグを切り替える
2.各アクティヴィティのonResume()でその状態を引き取って破棄
こんな感じでいかがでしょうか。
2011年11月26日18:00 大神戌一 <wan20...@hotmail.com>:
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
>
yukiさんの提案のintentでトップに飛ばす方法であればかなりすっきりしますね。知らなかったです。勉強になります。
2012年2月15日23:13 yuki312 <defin...@gmail.com>:
> yukiと申します。
>
> 提案となりますが、IntentにFLAG_ACTIVITY_CLEAR_TOPを追加してルートアクティビティを
> 起動するのではだめでしょうか?