我已经在
AndroidManifest.xml中定义了一个接收器来接收一个PlAY_FINISHED动作,而在其他文件中我向该广播接收器发送了一个intent,如下所示:
public String PlAY_FINISHED = "play finished"; ... Intent in = new Intent(PlAY_FINISHED); this.service.sendbroadcast(in);
所以在我的清单文件中,我将其设置为这样,其中MyStaticString是一个包含应用程序中所有静态字符串的类.这是正确的方法吗?
<intent-filter> <action android:name="com.mysite.appname.MyStaticString.PLAY_FINISHED" /> </intent-filter>
解决方法
清单中的android:intent过滤器的名称只是一个任意字符串,而不是Java常量的“路径”.问题是你的代码中的字符串常量被定义为“播放完成”,它与你在清单中指定的名称“com.mysite.appname.MyStaticString.PLAY_FINISHED”不匹配.
它应该是
public String PlAY_FINISHED = "com.mysite.appname.MyStaticString.PLAY_FINISHED";
调用变量无关紧要,或者即使将字符串存储在变量中也无关紧要.或者它的名字包含一个错字:)
您可以将清单中的android:name更改为“播放完毕”,但自定义广播操作是系统范围的,因此应该使用应用的包名称进行限定,以避免与其他应用发生冲突.
原文地址:https://www.jb51.cc/android/313567.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。