从服务发送到活动的数据不工作



我正在调用服务中的函数来发送数据到活动,我正在使用本地广播管理器,以下是服务

中的代码
private void sendDataToActivity(List<WNotificationModel> notificationList) {
Intent intent=new Intent("listDataUpdate");
intent.putExtra("hello","helloWorld");
LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
}

下面是活动

中接收数据的代码
public class WNotificationList extends AppCompatActivity {
private BroadcastReceiver mMessageReceiver=new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String name=intent.getStringExtra("hello");
Log.d("catAndDog", "onReceive: "+name);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_where_am_ilist_notification);
}
@Override
protected void onStart() {
super.onStart();
LocalBroadcastManager.getInstance(getApplicationContext()).registerReceiver(mMessageReceiver,new IntentFilter("listDataUpdate"));
}
@Override
protected void onStop() {
super.onStop();
LocalBroadcastManager.getInstance(getApplicationContext()).unregisterReceiver(mMessageReceiver);
}

}

广播有一些更新

从Android 9 (API级别28)开始,NETWORK_STATE_CHANGED_ACTION广播不会接收有关用户位置或个人身份数据的信息。

此外,如果你的应用安装在运行Android 9或更高版本的设备上,来自Wi-Fi的系统广播不包含ssid, bssid,连接信息或扫描结果。要获取此信息,请调用getConnectionInfo()。

从Android 8.0 (API级别26)开始,系统对manifest声明的接收者施加了额外的限制。

如果你的应用目标是Android 8.0或更高版本,你不能使用manifest为大多数隐式广播声明接收者(广播不专门针对你的应用)。当用户正在使用你的应用时,你仍然可以使用上下文注册的接收器。

请查看Developer.android.com

看看能不能帮到你。