Principalmente uso lo LocalBroadcasts
. Essenzialmente sono come trasmissioni reali, ma sono visibili solo alla tua applicazione. In primo luogo è necessario creare un BroadcastReceiver
come si farebbe con una trasmissione normale:
private final BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if(Intent.SOME_ACTION.equals(action)) {
// Do your work
}
}
};
È possibile quindi registrare e annullare la registrazione del BroadcastReceiver
in questo modo:
@Override
public void onResume() {
super.onResume();
IntentFilter intentFilter = new IntentFilter(Intent.SOME_ACTION);
LocalBroadcastManager manager = LocalBroadcastManager.getInstance(getActivity());
manager.registerReceiver(broadcastReceiver, intentFilter);
}
@Override
public void onPause() {
super.onPause();
LocalBroadcastManager manager = LocalBroadcastManager.getInstance(getActivity());
manager.unregisterReceiver(broadcastReceiver);
}
E, infine è possibile inviare una trasmissione dal Service
o in qualsiasi altro nella vostra applicazione in questo modo:
Intent intent = new Intent(Intent.SOME_ACTION);
LocalBroadcastManager manager = LocalBroadcastManager.getInstance(getActivity());
manager.sendBroadcast(intent);
fonte
2014-05-11 20:20:08
Dovresti iniziare a considerare se il tuo servizio è in esecuzione nello stesso processo della tua attività o se è in esecuzione su un processo diverso dalla tua attività. – Eido95
yeah Ho usato il binding prima e nel mio ultimo progetto, ho usato broadcast e broadcast sono molto più facili da usare con – yeahman