从服务发送到活动的数据不起作用
Posted
技术标签:
【中文标题】从服务发送到活动的数据不起作用【英文标题】:Data send from service to activity not working 【发布时间】:2021-12-09 00:06:42 【问题描述】:我在服务中调用一个函数来向活动发送数据,我为此使用本地广播管理器,下面是服务中的代码
private void sendDataToActivity(List<WNotificationModel> notificationList)
Intent intent=new Intent("listDataUpdate");
intent.putExtra("hello","helloWorld");
LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
下面是activity中接收数据的代码
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);
【问题讨论】:
【参考方案1】:广播中有一些更新。
从 android 9(API 级别 28)开始,NETWORK_STATE_CHANGED_ACTION 广播不会接收有关用户位置或个人身份数据的信息。
此外,如果您的应用安装在运行 Android 9 或更高版本的设备上,则来自 Wi-Fi 的系统广播不包含 SSID、BSSID、连接信息或扫描结果。要获取此信息,请改为调用 getConnectionInfo()。
从 Android 8.0(API 级别 26)开始,系统对清单声明的接收器施加了额外的限制。
如果您的应用以 Android 8.0 或更高版本为目标,则您不能使用清单为大多数隐式广播(不专门针对您的应用的广播)声明接收器。当用户积极使用您的应用时,您仍然可以使用上下文注册的接收器。
请查看Developer.android.com
看看这对你有没有帮助。
【讨论】:
以上是关于从服务发送到活动的数据不起作用的主要内容,如果未能解决你的问题,请参考以下文章
将消息发送到 XMPP 服务器的 php 函数不提供日志并且不起作用
将原始数据包发送到 Android 中的 NetworkInterface 不起作用?