【发布时间】:2018-11-21 16:42:52
【问题描述】:
我有一个发送意图的意图服务,如下所示:
Intent result = new Intent("TEST_RESULT");
result.putExtra("MODE", "testing");
sendBroadcast(result);
在另一个应用程序中,意图被广播接收器捕获,如下所示:
接收者注册:
IntentFilter testResultIntentFilter = new IntentFilter("TEST_RESULT");
TestResultReceiver receiver = new TestResultReceiver();
this.registerReceiver(receiver,testResultIntentFilter);
接收器中的onReceive方法:
@Override
public void onReceive(Context context, Intent intent) {
String message = intent.getStringExtra("MODE");
Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
}
此代码在 getStringExtra 调用上失败并出现空指针异常,就好像 putExtra 方法被忽略了一样。我尝试了所有方法,但没有任何效果。
【问题讨论】:
-
Intent result = new Intent然后intent.putStri。是错字还是您有多种意图? -
请提供完整的堆栈跟踪。
getStringExtra()行真的不可能抛出 NPE。Intent不能为 null,如果没有带有该键的String额外内容,getStringExtra()将返回 null,但它不会在那里抛出 NPE。 -
解决了这个问题?
标签: android android-intent broadcastreceiver android-intentservice