0

我正在尝试重新加载我的活动并传递 a 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 !");
   }
}

我越来越空了。

4

2 回答 2

5

OnCreate()你应该这样做:

if(getIntent().getExtras() != null) {
    Bundle extras = getIntent().getExtras();
    Log.i("Value", extras.getString("key"));
}

而不是这个

if (savedInstance != null){
}
于 2013-09-17T08:49:12.790 回答
2

先启动activity,然后调用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 !");
}
于 2013-09-17T09:03:26.557 回答