Могу ли я динамически зарегистрировать вещательный приемник внутри другого вещательного приемника в Android?Android

Форум для тех, кто программирует под Android
Anonymous
Могу ли я динамически зарегистрировать вещательный приемник внутри другого вещательного приемника в Android?

Сообщение Anonymous »

У меня есть ситуация, когда я хочу зарегистрировать вещательный приемник динамически из другого вещательного приемника (то есть внутри метода трансляции onreceive (). < /p>
private final Object threadLock = new Object();
private HandlerThread mConnMonitorthread = null;
private Handler mConnMonitorEventHandler = null;

private void initConnMonitorThread() {
if (mConnMonitorthread == null) {
synchronized (threadLock) {
if (mConnMonitorthread == null) {
mConnMonitorthread = new HandlerThread("BTEventReceiver");
mConnMonitorthread.start();
mConnMonitorEventHandler = new Handler(mConnMonitorthread.getLooper());
}
}
}
}

@Override
public void onReceive(Context context, Intent intent) {

String action = intent.getAction();

String data = intent.getDataString();

if (action != null) {
Log.d(TAG, "Receiver onReceive: Started " + action);
if (action.equals(Intent.ACTION_BOOT_COMPLETED) ||
action.equals(ACTION_ACL_CONNECTED) || action.equals(Intent.ACTION_MY_PACKAGE_REPLACED) || action.equals(Intent.ACTION_PACKAGE_REPLACED)) {

Log.d(TAG, "Receiver onReceive: " + action);

initConnMonitorThread();
BroadcastReceiver receiver = new Receiver();

context.registerReceiver(
receiver,
getIntentFilter(),
null,
mConnMonitorEventHandler,
Context.RECEIVER_EXPORTED
);

}
}
}
< /code>
Достоверен ли этот подход?
будет ли внутренний приемник оставаться должным образом и получить трансляции, как и ожидалось?>

Подробнее здесь: https://stackoverflow.com/questions/796 ... st-receive

Вернуться в «Android»