Вы можете сделать это несколькими способами:
1. использования радиовещательного приемника. В вашей деятельности:
BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// Do what you need in here
}
};
@Override
protected void onResume() {
super.onResume();
registerReceiver(mReceiver, new IntentFilter(ManageConection.BROADCAST_FILTER));
}
@Override
protected void onDestroy() {
unregisterReceiver(mReceiver);
super.onDestroy();
}
из вашего ManageConection
класса:
public static final String BROADCAST_FILTER = "ManageConection_broadcast_receiver_intent_filter";
и в настоящее время, когда вы хотите отправить сообщение, которое вы можете отправить Intent
и каждый вид деятельности, как удержание приемника с тем же фильтром (BROADCAST_FILTER
) получить обратного вызова:
Intent i = new Intent(BROADCAST_FILTER);
i.putExtra("connection_established", true);
sendBroadcast(i);
2. Используйте interface
: Где-то в вашем приложении создать интерфейс. Из каждого вида деятельности создать экземпляр этого, и передать его в ManageConection
:
public interface ManageConection {
public void onConnected();
}
private ManageConection mCallback = new ManageConection() {
@Override
public void onConnected() {
// callback goes here
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ManageConection.getInstace().setConnectionCallback(mCallback);
}
В ManageConection
установить глобальную переменную обратного вызова и установить его в setConnectionCallback()
:
private ManageConection mCallback;
public void setConnectionCallback(ManageConection callback) {
mCallback = callback;
}
Теперь, когда все вы хотите отправьте обратный вызов в свою деятельность, просто выполните:
if(mCallback != null)
mCallback.onConnected();
Вы хотите, чтобы обратный вызов соединения использовался только для одного действия за раз или для всех из них одновременно? – nbaroz
обратный вызов соединения по одному. – user3240604