Отто не отправляет данные при восстановлении активности (после OnDestroy)?

Я использую Otto для отправки events из IntentService в мою активность. IntentService Загружает файлы с сервера и отправляет ход выполнения в Activity, это работает с otto очень хорошо. -

я сделал до сих пор

  1. зарегистрировал отто в OnResume

    BusStation.getBus().unregister(this);
    
  2. создал функцию для получения событий

@Subscribe public void receiveProgress(Message message){ Log.i("Downloader",message.getMessage()+""); }

  1. отменить регистрацию автобуса в OnPause

    BusStation.getBus().unregister(this);

  2. У меня есть Button, по клику которого запускается DownloadService, и эта служба отправляет прогресс загрузки в функцию receiveProgress.

но когда я закрываю свое приложение и перезапускаю приложение, а затем, если DownloadSerice все еще загружает файл, он никогда не отправляет событие прогресса загрузки на receiveProgress, так как пересвязать это.


person Kulwinder Singh Rahal    schedule 25.02.2017    source источник


Ответы (1)


Я предполагаю, что BusStation.getBus() возвращает синглтон. Однако, когда вы перезапускаете приложение, синглтон должен быть создан снова, и, следовательно, это уже не тот же самый экземпляр.

Вы можете решить эту проблему, используя вместо этого LocalBroadcastManager:

https://developer.android.com/reference/android/support/v4/content/LocalBroadcastManager.html

person Damian Jäger    schedule 25.02.2017