2013-07-03 3 views
0

Я зарегистрировал приемник вещания в файле манифеста моего приложения, как:Дерегистрация приемник вещания определены в Android явить

<receiver android:name="com.example.devicecommunication.MainActivity$proximityOffReceiver" android:enabled="true"> 
     <intent-filter> 
      <action android:name="com.example.devicecommunication.PROXIMITYOFF" /> 
     </intent-filter> 
</receiver> 

Я определил приемник в MainActivity (как я хочу, приемник будет выполняться, даже если деятельность не находится на переднем плане). Я видел ссылку Android - how to unregister a receiver created in the manifest?. Но я смущен, если я должен явно отменить регистрацию получателя, каждый раз, когда приложение закрывается или когда нажата кнопка «Назад»? Заранее спасибо!

ответ

2

Я определил приемник в MainActivity (так как я хочу, чтобы приемник выполнялся, даже если активность не находится на переднем плане).

Поскольку proximityOffReceiver статический внутренний класс, тот факт, что у вас есть внутри MainActivity не означает, что «когда деятельность не на переднем плане» влияет proximityOffReceiver.

Но я смущен, если я должен явно отменить регистрацию приемника, каждый раз, когда приложение завершает работу или когда нажата кнопка «Назад»?

Принятый ответ на этот вопрос указывает, что вы не «отмените регистрацию» получателя, зарегистрированного в манифесте. Вы включаете или отключите приемник.

Следовательно, в вашем случае вы включаете приемник, когда хотите, чтобы он работал, и вы отключите приемник, когда вы не хотите его работать. В вашем случае, похоже, вы хотите, чтобы он работал все время, и в этом случае вы, вероятно, никогда не отключите его.

1

Независимо от того, зарегистрировать или не зарегистрировать приемник, зависит от вашего использования. Нет необходимости явно отменить регистрацию приемника, каждый раз, когда приложение закрывается/когда нажата кнопка возврата.

+0

Я с трудом понимаю, почему, можете ли вы объяснить больше, пожалуйста? – JamisonMan111

1

Вы должны поместить приемник в манифест, если хотите, чтобы ваша работа работала или нет. Если вы хотите включить его только после запуска вашего приложения, он должен быть зарегистрирован в коде вашей деятельностью. Если у вас нет приемника, который вы хотите находиться почти всегда и отключите его только на короткие промежутки времени, тогда нет никаких причин для его отмены после его установки в манифесте.

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