android接受广播时怎么确定是哪个应用发送的广播
答案:2 悬赏:0 手机版
解决时间 2021-11-28 08:28
- 提问者网友:疯孩纸
- 2021-11-28 03:59
android接受广播时怎么确定是哪个应用发送的广播
最佳答案
- 五星知识达人网友:不甚了了
- 2021-11-28 05:15
看接收广播的接口:
public abstract void onReceive(Context context, Intent intent);
这里有个参数context,就是发送广播的应用程序的上下文,而一般应用程序用类似如下方法发广播:
Context context = MyActivity.this;
context.sendBroadcast(intent);
接收到的广播中的context就是这里发送时的context,你在onReceive打印一下context就能够清楚知道是哪个应用程序发的广播了:
public void onReceive(Context context, Intent intent) {
Log.w(TAG, "context="+context);
//。。。。。。
}追问那要不是应用发送的广播是系统发送的怎么办?追答系统发送也需要一个context啊,你试着打印一下就知道效果了,所以系统,其实不也看成一个app(主app)?
public abstract void onReceive(Context context, Intent intent);
这里有个参数context,就是发送广播的应用程序的上下文,而一般应用程序用类似如下方法发广播:
Context context = MyActivity.this;
context.sendBroadcast(intent);
接收到的广播中的context就是这里发送时的context,你在onReceive打印一下context就能够清楚知道是哪个应用程序发的广播了:
public void onReceive(Context context, Intent intent) {
Log.w(TAG, "context="+context);
//。。。。。。
}追问那要不是应用发送的广播是系统发送的怎么办?追答系统发送也需要一个context啊,你试着打印一下就知道效果了,所以系统,其实不也看成一个app(主app)?
全部回答
- 1楼网友:第幾種人
- 2021-11-28 05:27
在Intent内可以设置一个字段作为应用的标示符,广播通过解析这个Intent内的标示符来匹配是哪个应用发送的。简单来说,你有3个应用能发送broadcast,用标示符0,1,2来分别标示,receiver接收到这个intent以后,解析标示符,然后就可以知道是哪个应用发送的broadcast了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯