Решение - LocalBroadcastManager.Благодаря LocalBroadcastManager мы можем отправлять трансляции между различными частями нашего приложения.
SEND_BROADCAST
LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(context);
IntentFilter filter = new IntentFilter("com.onezero.EXAMPLE_ACTION");
localBroadcastManager.registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "=(", Toast.LENGTH_SHORT).show();
}
}, filter);
Intent sintent = new Intent("com.onezero.EXAMPLE_ACTION");
localBroadcastManager.sendBroadcast(sintent);
Получать трансляции
LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(this);
IntentFilter filter = new IntentFilter("com.onezero.EXAMPLE_ACTION");
localBroadcastManager.registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// DO WORK
setPlayPause(); //PAUSE MEDIAPLAYER IN MY CASE
}
}, filter);