У меня есть функция, в которой внутри метода отправляется широковещательная передача в пользовательский приемник, расположенный во Фрагменте активности ... Я хотел бы установить разрешение в качестве второго параметра sendBroadcast, чтобы мой получатель мог получать только конкретные вещает ...пользовательские разрешения приемника вещания
sendBroadcast Activity (в):
@Override
public void update(Observable observable, Object connectionStatus) {
Log.e(debugTag, connectionStatus+"");
intent = new Intent("networkStateUpdated");
intent.putExtra("connectivityStatus", (int) connectionStatus);
sendBroadcast(intent, "mypermission");
}
инициализации пользовательского приемника внутри фрагмента onActivityCreated
broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
connectionStatus = intent.getExtras().getInt("connectivityStatus");
}
};
@Override
public void onResume() {
super.onResume();
getActivity().registerReceiver(broadcastReceiver, new IntentFilter("networkStateUpdated"), "mypermission", null);
}
@Override
public void onPause() {
super.onPause();
getActivity().unregisterReceiver(broadcastReceiver);
}
установка «mypermission» в качестве второго параметра sendBroadcast, по-видимому, не работает.
Я * настоятельно рекомендую вам перейти от этого к «LocalBroadcastManager» или к какой-либо другой форме встроенной шины событий (например, Square's Otto, EventBus greenrobot). Не используйте межпроцессное общение как средство для разговора с одной частью вашего приложения в другую часть вашего приложения. Мало того, что «LocalBroadcastManager» или шина событий будут быстрее, но у вас не будет этой проблемы безопасности. – CommonsWare
Вы правы. Я прочитал документацию о LocalBroadcastManager и действительно отлично подходит для своих приложений. – tsiro