1

Я новичок в Android, так что я надеюсь, что вы можете простить мое невежествоСвязи между классом и Основной деятельностью Android

Я сделал деятельность, чтобы контролировать некоторый блютус устройство с моим телефоном, теперь, когда все работает, я хотел бы, чтобы генерировать новый класс от этой деятельности, класс, который должен заботиться обо всем bluetooth-связи.

У меня есть несколько вопросов:

Первый: В моем activty я использовал один широковещательный приемник, чтобы прослушать некоторые действия адаптера Bluetooth, как State_on, BOND_BONDED ... Используя эти действия, я обновлю мои взгляды, я называю некоторые методы и т. д.

Итак, можно продолжить прослушивание этого широковещательного приемника внутри моего класса, а затем отправить изменения в мою основную деятельность, чтобы обновить представления и так далее?

Во-вторых: мне действительно нужно отправить информацию из моего класса bluetooth в мою основную деятельность, информацию, которую я читаю на своих устройствах, информацию от приемника вещания ... так что это лучший способ передать информацию между классом и основной деятельностью?

Ну, спасибо за помощь :)

+0

дубликата HTTP : //stackoverflow.com/a/4011057/534471 –

ответ

0

Метод OnReceive() вашего BroadcastReceiver вызывается из основного потока: «Этот метод всегда вызывается в главном потоке своего процесса» (http://developer.android.com/reference/android/content/BroadcastReceiver.html#onReceive(android.content.Context, android.content.Intent)).

Это означает, что вы можете обновить свой ui методом onReceive(). Все, что вам нужно сделать, это использовать локальный класс следующим образом:

BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     // update the ui 
    } 
}; 

Регистрация этот приемник программно (вместо определения его в манифесте), и вы хорошо идти:

Context.registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter) 
+0

Так что я не могу слушать BroadcastReceiver, который я использую, чтобы получить различные состояния адаптера bluetooth внутри моего класса bluetooth? – Juanpa

+0

Вы можете, но потом вам придется отправить трансляцию с вашего ресивера в вашем классе bluetooth до выше BroadcastReceiver. Вы можете использовать LocalBroadcastManager для отправки широковещательной передачи (более эффективной и надежной). –