原因:targetSdkVersion >25 时用sendBroadcast不起作用

Intent intent = new Intent();

intent.setAction(WebSocketReceiver.INTENT_ACTION_WEBSOCKET);

intent.putExtra(INTENT_WEBSOCKET_MSG, message);

mContext.sendBroadcast(mContext,intent);

解决:

private static void sendImplicitBroadcast(Context ctxt, Intent i) {

PackageManager pm=ctxt.getPackageManager();

List matches=pm.queryBroadcastReceivers(i, 0);

for (ResolveInfo resolveInfo : matches) {

Intent explicit=new Intent(i);

ComponentName cn=

new ComponentName(resolveInfo.activityInfo.applicationInfo.packageName,

resolveInfo.activityInfo.name);

explicit.setComponent(cn);

ctxt.sendBroadcast(explicit);

}

}

Intent intent = new Intent();

intent.setAction(WebSocketReceiver.INTENT_ACTION_WEBSOCKET);

intent.putExtra(INTENT_WEBSOCKET_MSG, message);

sendImplicitBroadcast(mContext,intent);

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐