我注册了一个 BroadcastReceiver 来监听以下动作..
public static final String MY_ACTION = "com.blah.intent.action.DOSOMETHING";
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我有
Intent intent = new Intent(MY_ACTION);
sendBroadcast(intent);
Run Code Online (Sandbox Code Playgroud)
如果我使用它,广播可以正常发送和接收,但是如果我在通过添加这些行发送广播之前使用 setData 添加一个 Uri..
Uri uri = Uri.parse("/sdacrd/myfile");
intent.setData(uri);
Run Code Online (Sandbox Code Playgroud)
如果我 setData 不会收到广播。
谁能解释为什么在意图上设置数据会阻止广播工作?
Android 不仅关注 ACTION,还关注数据和架构的类型。你应该告诉你的接收者可以通过调用 IntentFilter 上的 addDataSchema() 或 addDataType() 来接收这种类型。如果您只想发送字符串,为什么不使用附加功能?
| 归档时间: |
|
| 查看次数: |
3820 次 |
| 最近记录: |