0

「A」に起動するアプリがあります。-Activity最初の起動時に、「A」は「B」を起動し、その後にsingleTask 「C」を起動します-その後の起動では、「A」は「C」のActivity静的フラグをチェックします、その後、singleTask 'C' Activityを戻す意図を発します。Activity

「A」を再起動すると、「C」ではなく「B」に移動することがあるという問題が発生しています。「C」が存在しなくなる瞬間を見つけることを期待して、 Activity「C」メソッドに大量のログ メッセージを( 、、、、などを呼び出す前に) 配置しましたがfinish()、何もログに記録されません。考えられる唯一の原因は、「C」からサードパーティのライブラリを参照していることです。これは、アプリケーションに返されないエラーに苦しんでいる可能性があります。これは事実でしょうか?onStoponDestroyonPauseonDestroyActivity

4

2 に答える 2

0

Android はいつでもプロセスを強制終了できます (プロセスがフォアグラウンドにない場合)。おそらくあなたが見ているのはまさにそれです。アプリを起動すると、ActivityA が ActivityC を起動した ActivityB を起動しました。ここで、ユーザーは別のことをします (電話をかける、Angry Birds をプレイするなど)。後で、彼はアプリケーションに戻ります (ただし、アプリケーションのプロセスはバックグラウンドにある間に強制終了されました)。Android はアプリケーションの新しいプロセスを作成し、Activity A の新しいインスタンスを作成します。ActivityA は ActivityC の静的変数をチェックしますが、ActivityC が新しく作成されたプロセスに存在しないため、設定されません。

于 2013-10-25T20:58:20.417 に答える
0

使用できます

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
于 2013-10-25T09:58:22.617 に答える