2016-12-14 5 views
0

У меня есть два приложения, которые разговаривают друг с другом через приемник. Когда в приложении A нажата кнопка, я транслирую намерение с определенным разрешением. Приложение B затем просыпается, делает некоторые вычисления и снова передает намерение с определенным разрешением для приложения A. В обоих манифестях я определяю разрешение (то же имя), и я также регистрирую оба приемника.Жизненный цикл приемника

<permission android:name="aa.bb.cc.dd" 
    android:label="permission" 
    android:protectionLevel="normal"></permission> 

    <receiver android:name=".receiver" 
     android:exported="true"> 

     <uses-permission android:name="aa.bb.cc.dd"/> 

     <intent-filter> 
      <action android:name= "a_certain_action"/>/> 
     </intent-filter> 
    </receiver> 

и называть их:

Intent i = new Intent(); 
    i.setAction("a_certain_action"); 
    sendBroadcast(i,"aa.bb.cc.dd"); 

Однако в то время как это работало совершенное вчера сегодня приемник на приложение B не будет просыпаться, когда я вещать намерения. Почему это?

ответ

1

Ваше приложение, вероятно, было убито, а приемник не зарегистрирован. Попытайтесь использовать услугу, и там зарегистрируйте широковещательную рассылку

+0

Для приемников на работу приложение должно работать? – Libathos

+0

Да, «приложение» должно быть запущено. Но не целая активность, просто обслуживание в вашем случае –

+0

Когда я регистрирую приемник в своем манифесте, вы не всегда слушаете событие? – Libathos

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