意图额外没有改变

时间:2013-11-18 13:39:11

标签: android android-intent

我有一个活动,其中一个MediaPlayer在调用onStop()后仍然运行。

我想重新加载此活动,但传递不同的额外值。

            Intent intent = new Intent(WelcomeScreen.this, PlayMusic.class);
            intent.putExtra("plan", 0);
            intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
            startActivity(intent);

但是,无论我对新意图采取什么措施,这个额外的数据都会被“卡住”。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

正如您明确指出的那样,您创建了一个新的Intent对象。无论与旧的Intent相关的参数是什么,用于最初创建Activity的那个,它们都没有受到影响。

但是,您可以通过覆盖Activity的onNewIntent()方法来访问新的Intent:

@Override
protected void onNewIntent(Intent intent) 
{
    super.onNewIntent(intent);

    if ( intent != null && intent.hasExtra("plan") )
    {
        // Yay! Do whatever... Live long... Prosper...
    }
}

答案 1 :(得分:1)

您必须在onNewIntent回调

中显式设置新的意图
override fun onNewIntent(intent: Intent) {
    super.onNewIntent(intent)
    setIntent(intent)
}