我正在尝试重新加载我的活动并传递bundle
,但我得到一个空(null)包。
重新加载活动:
Intent intent = new Intent(MyActivity.this, MyActivity.class);
Bundle bundle = new Bundle();
bundle.putInt("key", 1);
intent.putExtras(bundle);
MyActivity.this.finish();
startActivity(intent);
onCreate
活动,我应该获得bundle
:
@Override
public void onCreate(Bundle savedInstance)
{
if (savedInstance != null)
{
}
else
{
Log.i("d", "IS NULL !");
}
}
我变空了。
答案 0 :(得分:5)
在OnCreate()
中你应该这样做:
if(getIntent().getExtras() != null) {
Bundle extras = getIntent().getExtras();
Log.i("Value", extras.getString("key"));
}
而不是这个
if (savedInstance != null){
}
答案 1 :(得分:2)
首先启动活动,然后按如下方式调用finish()
:
Intent intent = new Intent(MyActivity.this, MyActivity.class);
Bundle bundle = new Bundle();
bundle.putInt("key", 1);
intent.putExtras(bundle);
startActivity(intent);
MyActivity.this.finish();
然后收到这样的附加内容:
Bundle bundle = getIntent().getExtras();
最后,您可以设置条件来检查它是否正确如下:
if(bundle != null)
{
}
else
{
Log.i("d", "IS NULL !");
}