onNewIntent不会被调用(onNewIntent not get called)

2019-09-29 20:37发布

我已经通过调用start活动开始自己的新活动。 但活动开始后,在方法onNewIntentfinish()是不会被调用!。

WebActivity.java

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    setIntent(intent);
    if (intent.getStringExtra("url") != null) {
        Intent intent1 = new Intent(getBaseContext(), WebActivity.class);
        intent1.putExtra("url",intent.getStringExtra("url"));
        startActivity(intent1);
        finish();
    }
}

Answer 1:

FYI

调试在第一和下方不需要的行删除

super.onNewIntent(intent);
setIntent(intent); 

通话结束() 意图

Intent intent1 = new Intent(getBaseContext(), WebActivity.class);
intent1.putExtra("url",intent.getStringExtra("url"));
finish();
startActivity(intent1)

您也可以尝试用FLAG_ACTIVITY_NO_HISTORY 。

如果设置,新的活动没有保存在历史堆栈。 一旦用户导航远离它,活动结束。 这也可以与noHistory属性设置。



Answer 2:

这是因为onNewIntent是不会被调用!

我把这个地方上这个活动被调用。

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);

那么它的作品就像一个魅力!。

这是因为调用新的活动。 而FLAG_ACTIVITY_SINGLE_TOP使得onNewIntent被调用。 这FLAG_ACTIVITY_SINGLE_TOP 不会开始一个新的活动



Answer 3:

我使用onNewIntent在Android的搜索实现。 我碰到的问题来了,是onNewIntent当我用键盘在模拟器上的执行按钮没有被调用。 我将通过我的代码在处理意图解决问题onCreate方法也。 这需要做,以确保活动时的一个新的实例启动的意图动作的处理。

这就提出一个问题,因为onCreate每当活动从以前的状态恢复得叫。 因此,意图处理方法被调用,即使取向发生变化。

解决方案:使用if (savedInstanceState==null)以确定是否正在从以前的状态恢复的活动,或者是一个新的搜索。



文章来源: onNewIntent not get called