2015-05-20 3 views
-1

В моем проекте у меня есть 2 действия. Из основного действия я запустил 2-й вид деятельности с собственным VideoView в нем, а в методе onCreate я буду называть финиш, чтобы я работал на заднем плане. Но я хочу отправить обновления в MainActivity, например, пауза, запуск, остановка и т. Д. Я узнал, что BroadcastReceiver - лучший способ решить эту проблему. Вот что я делаю, но MainActivity не получает широковещательную передачу, отправленную 2-й активностью, вот мой код.Добавление BroadcastReceiver в MainActivity не работает

В MainActivity.java,

BroadcastReceiver broadcastReceiver = new BroadcastReceiver() 
{ 
    @Override 
    public void onReceive(Context context, Intent intent) 
    { 
     System.out.println("In onReceive"); 
    } 
}; 
private IntentFilter filter = new IntentFilter("com.example.broadcast"); 

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    registerReceiver(broadcastReceiver, filter); 
} 

В 2-активность,

Intent intent = new Intent("com.example.broadcast"); 
intent.putExtra("Status", status); 
sendBroadcast(intent); 

Что я делаю неправильно?

+1

Зарегистрируйте приемник, как: 'LocalBroadcastManager.getInstance (это) .registerReceiver (BroadcastReceiver, фильтр);' –

+1

Скорее всего, «MainActivity» не активен, когда отображается вторая «Активность». Где вы отменили регистрацию получателя? – 323go

+0

@bigdestroyer, я не могу добавить 'LocalBroadcastManager', поскольку он не разрешается в Android Studio. – Trident

ответ

0

В тот момент, когда вы отправляете эту трансляцию, первое действие приостанавливается, поэтому оно не может быть получено. Он возобновляется только после завершения 2-го действия с использованием finish().

Если вы хотите что-то вычислить в фоновом режиме, вы можете использовать Service.

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

(На самом деле я думал о причине только сейчас, хорошая идея, если вы думаете, что я имею в виду)

+0

Если я сделаю видимость невидимого представления, будет ли видео по-прежнему воспроизводиться? – Trident

+1

Не пробовал, но я думаю, что это будет, поскольку он все еще там. Только если вы установите его на «ушел», он полностью исчезнет, ​​и я не уверен, что он продолжится. «Невидимый» = все еще есть, но вы не видите его <-> «Ушел» = нет. – Squirrelkiller

Смежные вопросы