如果设置了 Intent Type,为什么我不能成功地向接收者发送广播?
Why I can't send broadcast to receiver successfull if Intent was set Type?
我创建了一个接收器并在我的应用程序中动态注册它:
MyReceiver receiver = new MyReceiver();
IntentFilter intentFilter = new IntentFilter("com.test.receiver");
LocalBroadcastManager.getInstance(this).registerReceiver(receiver, intentFilter);
我写了一些代码如下发送广播,我的接收者可以成功接收消息,一切正常。
Intent intent = new Intent();
intent.setAction("com.test.receiver");
LocalBroadcastManager.getInstance(MainActivity.this).sendBroadcast(intent);
但是如果我尝试为 Intent 设置类型(),我的接收器将无法工作,什么都不会收到。
Intent intent = new Intent();
intent.setAction("com.test.receiver");
intent.setType("test");
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
根据AndroidAPI文档,Type没有intent-filter功能,你知道为什么吗?
来自Android documentation,setType()
方法用于设置有效的MIME类型。
setType(String type)
Set an explicit MIME data type.
这是您可以发送的常见 MIME 类型。
image/jpeg
audio/mpeg4-generic
text/html
audio/mpeg
audio/aac
audio/wav
audio/ogg
audio/midi
audio/x-ms-wma
video/mp4
video/x-msvideo
video/x-ms-wmv
image/png
image/jpeg
image/gif
.xml ->text/xml
.txt -> text/plain
.cfg -> text/plain
.csv -> text/plain
.conf -> text/plain
.rc -> text/plain
.htm -> text/html
.html -> text/html
.pdf -> application/pdf
.apk -> application/vnd.android.package-archive
而 test
不是有效的 MIME 类型。
我创建了一个接收器并在我的应用程序中动态注册它:
MyReceiver receiver = new MyReceiver();
IntentFilter intentFilter = new IntentFilter("com.test.receiver");
LocalBroadcastManager.getInstance(this).registerReceiver(receiver, intentFilter);
我写了一些代码如下发送广播,我的接收者可以成功接收消息,一切正常。
Intent intent = new Intent();
intent.setAction("com.test.receiver");
LocalBroadcastManager.getInstance(MainActivity.this).sendBroadcast(intent);
但是如果我尝试为 Intent 设置类型(),我的接收器将无法工作,什么都不会收到。
Intent intent = new Intent();
intent.setAction("com.test.receiver");
intent.setType("test");
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
根据AndroidAPI文档,Type没有intent-filter功能,你知道为什么吗?
来自Android documentation,setType()
方法用于设置有效的MIME类型。
setType(String type)
Set an explicit MIME data type.
这是您可以发送的常见 MIME 类型。
image/jpeg
audio/mpeg4-generic
text/html
audio/mpeg
audio/aac
audio/wav
audio/ogg
audio/midi
audio/x-ms-wma
video/mp4
video/x-msvideo
video/x-ms-wmv
image/png
image/jpeg
image/gif
.xml ->text/xml
.txt -> text/plain
.cfg -> text/plain
.csv -> text/plain
.conf -> text/plain
.rc -> text/plain
.htm -> text/html
.html -> text/html
.pdf -> application/pdf
.apk -> application/vnd.android.package-archive
而 test
不是有效的 MIME 类型。