1

В моем приложении, я делаю настройку (включая вызовы на наш сервер) в методе onCreate приложения. С другой стороны, мы используем broadcastReceiver для получения изменений в связности. Кажется, что все работает нормально, но если мы убьем приложение, а затем изменим соединение, то вызывается метод onCreate приложения, что вызывает вызов нашего сервера, который не должен выполняться. Это нормальное поведение? Как мы можем избежать метода onCreate для вызова изменений связи?Связность broadcastReceiver вызывает метод onCreate приложения

Радиопередача приемник подключения настроен таким образом в AndroidManifest:

<receiver android:name="x.ConnectivityReceiver" android:label="ConnectivityReceiver"> 
    <intent-filter> 
     <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> 
    </intent-filter> 
</receiver> 

Спасибо заранее.

ответ

1

Это нормальное поведение, потому что ваше приложение запущено (создано) для вашего BroadcastReceiver. Единственный способ предотвратить вызов onCreate - это удалить BroadcastReceiver.
Вы можете динамически регистрировать ваш приемник в классе Application или Activity, а не в манифесте. Я не знаю, подходит ли это для ваших нужд, но

+0

Благодарим вас за ответ. Тогда я предполагаю, что мне придется регистрировать трансляцию в моем классе приложения. Но тогда он никогда не будет незарегистрирован, это будет проблема? – FVod

+0

Вы можете отменить регистрацию в 'onTerminate' или в какой-то другой точке. Если вы не отмените регистрацию и ваши приложения не будут завершены, вы увидите стек в лог-кате, в котором говорится, что ресивер просочился. Однако я считаю, что это не фатальное исключение – 0xDEADC0DE