我已经通过调用start活动开始自己的新活动。 但活动开始后,在方法onNewIntent
的finish()
是不会被调用!。
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();
}
}
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属性设置。
这是因为onNewIntent是不会被调用!
我把这个地方上这个活动被调用。
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
那么它的作品就像一个魅力!。
这是因为调用新的活动。 而FLAG_ACTIVITY_SINGLE_TOP使得onNewIntent
被调用。 这FLAG_ACTIVITY_SINGLE_TOP 不会开始一个新的活动 。
我使用onNewIntent
在Android的搜索实现。 我碰到的问题来了,是onNewIntent
当我用键盘在模拟器上的执行按钮没有被调用。 我将通过我的代码在处理意图解决问题onCreate
方法也。 这需要做,以确保活动时的一个新的实例启动的意图动作的处理。
这就提出一个问题,因为onCreate
每当活动从以前的状态恢复得叫。 因此,意图处理方法被调用,即使取向发生变化。
解决方案:使用if (savedInstanceState==null)
以确定是否正在从以前的状态恢复的活动,或者是一个新的搜索。