编辑:标题应为 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
答案 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);
}
在getIntent
中onCreate
返回正确的意图。
关于这一重写的一些讨论,你可以在这里找到:
Is there any reason not to call setIntent when overriding onNewIntent?