首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >onNewIntent不被呼叫

onNewIntent不被呼叫
EN

Stack Overflow用户
提问于 2017-02-13 06:05:10
回答 3查看 4.6K关注 0票数 1

我通过调用start活动启动了一个新的活动。但是在活动开始后,在onNewIntent方法中不调用finish()

WebActivity.java

代码语言:javascript
复制
@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();
    }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-02-13 06:18:55

这是因为onNewIntent没有被调用!

我把这个放在这个活动被调用的地方。

代码语言:javascript
复制
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);

那么它的作用就像一种魅力!

这是因为呼唤新的活动。顶部onNewIntent接到电话。此顶部 将不会启动新的活动

票数 3
EN

Stack Overflow用户

发布于 2017-02-13 06:08:47

FYI

调试删除不需要的行以下的

代码语言:javascript
复制
super.onNewIntent(intent);
setIntent(intent); 

完成()意图中调用

代码语言:javascript
复制
Intent intent1 = new Intent(getBaseContext(), WebActivity.class);
intent1.putExtra("url",intent.getStringExtra("url"));
finish();
startActivity(intent1)

您也可以尝试使用旗子 .。

如果设置了,则新活动不会保存在历史堆栈中。一旦用户离开它,活动就完成了。这也可以用noHistory属性来设置。

票数 3
EN

Stack Overflow用户

发布于 2017-06-02 12:25:18

我在安卓系统中使用onNewIntent实现搜索。当我在模拟器中使用键盘上的Go按钮时,我遇到了一个问题,即当我使用键盘上的Go按钮时,onNewIntent没有被调用。我还通过将处理意图的代码放在onCreate方法中解决了这个问题。需要这样做,以确保在启动活动的新实例时处理意图操作。

这就造成了一个问题,因为每当从以前的状态恢复活动时,都会调用onCreate。因此,即使发生了方向更改,意图处理方法也会被调用。

解决方案:使用if (savedInstanceState==null)确定活动是从以前的状态恢复,还是重新搜索。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42197583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档