android - 关于singleTop 并没有调用onNewIntent()
天蓬老师
天蓬老师 2017-04-17 16:13:41
0
5
661
<activity
        android:launchMode="singleTop"
        android:name=".SingleTopActivity"
        android:label="SingleTopActivity">
</activity>
 

点击按钮 跳转2次,

 @Override
        public void onClick(View view) {
           // attemptLogin();
            startActivity(new Intent(LoginActivity.this,SingleTopActivity.class));
            startActivity(new Intent(LoginActivity.this,SingleTopActivity.class));
        }

但是第二次也是 onCreate了并没有进入onNewIntent,请问这是为什么

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全員に返信(5)
刘奇

自分で追加します

リーリー

ログを置けば分かります。 初めてアクティビティを開始したとき、2 番目のアクティビティはまったく開始されていません。最初のアクティビティを終了すると、この時点で 2 番目のアクティビティが開始されますが、この時点で 1 番目のアクティビティは破棄されているため、2 番目のアクティビティは開始されません。これは onCreate でのみ実行できます。

いいねを押す +0
小葫芦

このコード行を起動アクティビティのインテントに追加します

リーリー

android:launchMode="singleTop" の行を削除してください。

いいねを押す +0
小葫芦

起動モードが SingleTask の場合、最初のインターフェースが強制終了されていない場合、onNewIntent() は 2 回目に開かれたときにのみ呼び出されます

いいねを押す +0
PHPzhong

このように SingleTopActivity を開始すると、スタックの最上位は SingleTopAcvitiy ではなく現在のアクティビティのままになります。SingleTop モードでは、開始するアクティビティがスタックの最上位にある必要があり、その後 SingleTopActivity を開始するため、onNewIntent が実行されます。 () は

と呼ばれます
いいねを押す +0
小葫芦

@idisfkj の言うとおりです。
最初に startActivity() を実行したとき、コードはすでに SingleTopActivity のライフサイクルに入っており、2 番目の startActivity() はすぐには実行されず、 のようです。 は 2 回連続して開始されますSingleTopActivity が、実際にはそうではありません。2 回目の開始の前に、SingleTopActivity を終了して元の Activity に戻る必要があります。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート