我从以下方式开始:
@H_502_4@Intent intent = new Intent("pacman.intent.action.Launch");intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_top);startActivity(intent);现在我想通过使用广播接收器发送两个活动之间的意图.在活动A1中,我按以下方式发送意图:
@H_502_4@Intent intent = new Intent("pacman.intent.action.broADCAST");intent.putExtra("message","Wake up.");sendbroadcast(intent);活动A1中负责此广播的清单文件部分如下:
@H_502_4@<activity androID:name="ch.ifi.csg.games4blue.games.pacman.controller.PacmanGame" androID:label="@string/app_name"> <intent-filter> <action androID:name="androID.intent.action.MAIN" /> <category androID:name="androID.intent.category.LAUNCHER" /> </intent-filter> <intent-filter> <action androID:name="androID.intent.action.broADCAST" /> </intent-filter></activity>在接收活动中,我在清单文件中按以下方式定义接收器:
@H_502_4@<application androID:icon="@drawable/icon" androID:label="@string/app_name"> <activity androID:name=".PacmanGame" androID:label="@string/app_name" androID:screenorIEntation="portrait"> <intent-filter> <action androID:name="pacman.intent.action.Launch" /> <category androID:name="androID.intent.category.DEFAulT" /> </intent-filter> <receiver androID:name="ch.ifi.csg.games4blue.games.pacman.controller.MsgListener" /> </activity> </application>类消息监听器以这种方式实现:
@H_502_4@public class MsgListener extends broadcastReceiver { /* (non-Javadoc) * @see androID.content.broadcastReceiver#onReceive(androID.content.Context,androID.content.Intent) */ @OverrIDe public voID onReceive(Context context,Intent intent) { System.out.println("Message at Pacman received!"); }}不幸的是,从未收到过该消息.虽然调用了活动A1中的方法,但我从未在B1中收到意图.
任何提示如何解决这个问题?
非常感谢!
>你的动作字符串不应该在androID.intent.action名称空间中,除非你在谷歌工作 – 使用ch.ifi.csg.games4blue.games.pacman.controller.broADCAST或类似的东西
>您的< intent-filter>您的自定义 *** 作需要放在< receiver>上,而不是发送或接收<活动>
See here for an example实现了清单注册的广播接收器(用于系统广播的Intent).
总结以上是内存溢出为你收集整理的如何在Android中的不同应用程序中使用广播接收器?全部内容,希望文章能够帮你解决如何在Android中的不同应用程序中使用广播接收器?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)