如何在Android中的不同应用程序中使用广播接收器?

如何在Android中的不同应用程序中使用广播接收器?,第1张

概述我在这里有两个不同项目的应用程序在 eclipse中.一个应用程序(A)定义首先启动的活动(A1).然后我从这个活动开始第二个项目(B)中的第二个活动(B1).这很好用. 我从以下方式开始: Intent intent = new Intent("pacman.intent.action.Launch");intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_T 我在这里有两个不同项目的应用程序在 eclipse中.一个应用程序(A)定义首先启动的活动(A1).然后我从这个活动开始第二个项目(B)中的第二个活动(B1).这很好用.

我从以下方式开始:

@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中收到意图.

任何提示如何解决这个问题?
非常感谢!

解决方法 >你的<接收器> element必须是您的< activity>的同伴元素,而不是孩子.
>你的动作字符串不应该在androID.intent.action名称空间中,除非你在谷歌工作 – 使用ch.ifi.csg.games4blue.games.pacman.controller.broADCAST或类似的东西
>您的< intent-filter>您的自定义 *** 作需要放在< receiver>上,而不是发送或接收<活动>

See here for an example实现了清单注册的广播接收器(用于系统广播的Intent).

总结

以上是内存溢出为你收集整理的如何在Android中的不同应用程序中使用广播接收器?全部内容,希望文章能够帮你解决如何在Android中的不同应用程序中使用广播接收器?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1134218.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存