Android LocalBroadcastManger并不总是接收数据

时间:2016-04-25 08:32:58

标签: android android-fragments broadcastreceiver localbroadcastmanager

我有TextView的片段。从我的应用程序的不同位置,我想更新TextView,所以我使用LocalBroadcastManager但它并不总是有效 - 事实上,当我禁用设备管理员(这是MDM应用程序)时,它'忘记'接收数据......

    public static void sendMessage(String message) {
        MESSAGE = message;
        Intent intent = new Intent(MESSAGE_INTENT_FILTER);
        intent.putExtra(MESSAGE_EXTRA, message);
        App.getAppContext().sendBroadcast(intent);
    }

App.getAppContext()是我的Application类中声明的静态上下文。

@Override
public void onResume() {
    super.onResume();
    updateStatus(MESSAGE);
}

onResume()我正在更新存储的消息(因为我的片段并不总是出现。

我的接收者:

    receiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String message = intent.getStringExtra(MESSAGE_EXTRA);
            updateStatus(message);
        }
    };

onStart / onStop:

@Override
public void onStart() {
    super.onStart();
    initReceiver();
    IntentFilter intentFilter = new IntentFilter(MESSAGE_INTENT_FILTER);
    LocalBroadcastManager.getInstance(App.getAppContext()).registerReceiver(receiver, intentFilter);
}

@Override
public void onStop() {
    super.onStop();
    LocalBroadcastManager.getInstance(App.getAppContext()).unregisterReceiver(receiver);
}

我的日志:

  

开始片段

     

on resume fragment - message:Message 1

     

更新状态 - 消息:消息1

     

发送消息:消息2

     

关于停止片段

     

开始片段

     

on resume fragment - message:Message 2

     

更新状态 - 消息:消息2

     

禁用管理

     

发送消息:取消

就是这样......不再接受

0 个答案:

没有答案