我有一个活动,其中一个MediaPlayer在调用onStop()后仍然运行。
我想重新加载此活动,但传递不同的额外值。
Intent intent = new Intent(WelcomeScreen.this, PlayMusic.class);
intent.putExtra("plan", 0);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
但是,无论我对新意图采取什么措施,这个额外的数据都会被“卡住”。
有什么想法吗?
答案 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)
}