В одну сторону:
Определите интерфейс в своей деятельности и внедрите интерфейс в свою деятельность, передайте его ссылку другому классу и вызывайте эту ссылку всякий раз, когда вам нужно.
Пример:
a) Создать интерфейс
public interface MyBroadcastListener{
public void doSomething(String result);
}
b) Инициализировать BroadCastReceiver
public class TestNotifAlarm extends BroadcastReceiver {
private MyBroadcastListener listener;
@Override
public void onReceive(Context context, Intent intent) {
listener = (MyBroadcastListener)context;
listener.doSomething("Some Result");
}
}
c) Внедрить интерфейс в Activity
public YourActivity extends AppCompatActivity implements MyBroadcastListener{
// Your Activity code
public void updateTheTextView(String t) {
TextView textView = (TextView) findViewById(R.id.textView);
textView.setText(t);
}
@Override
public void doSomething(String result){
updateTheTextView(result); // Calling method from Interface
}
}
Другой способ:
a) Поместите получателя в свой класс деятельности
BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
textView.setText(intent.getStringExtra("extra"));
}
};
b) Зарегистрируйте BroadCastReceiver
registerReceiver(broadcastReceiver , new IntentFilter("trigger_broadcust"));
в) Звоните sendBroadcast
Intent intent = new Intent("trigger_broadcust");
intent.putStringExtra("extra", "data");
sendBroadcast(intent);