getIntent()。getExtras()在android 4.1.1 JellyBean上返回null

时间:2014-03-07 14:17:23

标签: android

编辑:标题应为 getIntent()。getExtras()在Android 4.1.1 JellyBean上运行的Galaxy Nexus上返回null

我正在使用bug-sense进行错误报告。在对我的应用程序进行最新更新后,我一直在获取空指针。

此问题仅适用于Android 4.1.1。几乎每个活动都会出现25次这些空指针,而且只有Android 4.1.1。

任何人都知道为什么会这样吗?

Intent i= new Intent(context, MyActivity.class);
i.putExtra("id", id);
context.startActivity(i);

获得extas:

Bundle extras = getIntent().getExtras();
String id = extras.getString("id"); //null pointer

2 个答案:

答案 0 :(得分:0)

即使与Android 4.1.1无关,看起来与此非常相似

Android getIntent().getExtras() returns null

你在使用标签吗? 我认为你需要提供更多的上下文,代码才能得到有效的答案。

答案 1 :(得分:0)

我在Android 4.1上的singleTask启动模式的活动中遇到了同样的问题。 如果我之前已经开始实例,那么它就会重现。

似乎getIntent()返回当前的第一个意图。 Android docs说:

  

getIntent():返回启动此活动的意图。

我发现在onCreate中我获得了第一个意图(活动启动器),但是在onNewIntent我得到了额外的适当意图。所以我已经覆盖onNewIntent这样:

@Override
public void onNewIntent(Intent intent) {
  super.onNewIntent(intent);
  setIntent(intent);
}

getIntentonCreate返回正确的意图。

关于这一重写的一些讨论,你可以在这里找到:
Is there any reason not to call setIntent when overriding onNewIntent?