gpt4 book ai didi

android BroadcastReceiver 调用了两次

转载 作者:行者123 更新时间:2023-11-30 00:16:58 25 4
gpt4 key购买 nike

我正在做聊天项目

我在这里做的是连接人员的服务,我设置了一个广播接收器来从服务中获取数据

这是接收者代码

mMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
try {
final String code = intent.getExtras().get("code").toString();
final JSONObject Message = new JSONObject(intent.getExtras().get("msg").toString());
runOnUiThread(new Runnable() {
@Override
public void run() {
Log.d("test","test");
}
});
} catch (JSONException e) {
e.printStackTrace();
}
}
};

LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver,new IntentFilter("data"));

问题是当我关闭 Activity 时,runOnUiThread 中的代码调用了不止一次

如果我关闭 Activity 并打开它,它会调用 2 次,如果我再次打开它,它会调用 3 次,依此类推

最佳答案

您需要在 Activity 暂停后注销广播接收器。在您的 Activity 的 onPause() 方法中。 LocalBroadcastManager.getInstance(this).unregisterReceiver(m‌ MessageReceiver)

关于android BroadcastReceiver 调用了两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47102584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com