mez*_*ezo 3 android broadcast broadcastreceiver android-runonuithread android-broadcastreceiver
我正在从事聊天项目
我在这里所做的是与连接人员的服务,我设置了一个广播接收器以从服务获取数据
这是接收者代码
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"));
Run Code Online (Sandbox Code Playgroud)
问题是当我关闭活动时 runOnUiThread 内的代码调用多次
如果我关闭活动并打开它,它会调用 2 次,如果我再次执行它,它会调用 3 次,依此类推
您需要在活动暂停后取消注册广播接收器。在您的活动的 onPause() 方法中。LocalBroadcastManager.getInstance(this).unregisterReceiver(m\xe2\x80\x8c\xe2\x80\x8bMessageReceiver)
\n| 归档时间: |
|
| 查看次数: |
4370 次 |
| 最近记录: |