のフラグメントがあり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);
}
私のログ:
フラグメント開始時
レジューム フラグメントについて - メッセージ: メッセージ 1
更新ステータス - メッセージ: メッセージ 1
メッセージを送信: メッセージ 2
オンストップフラグメント
フラグメント開始時
レジューム フラグメントについて - メッセージ: メッセージ 2
更新ステータス - メッセージ: メッセージ 2
無効な管理者
メッセージを送信: キャンセル
それだけです...もう受信しません