当活动重新创建(OnDestroy之后)时,Otto不发送数据?

时间:2017-02-25 06:39:00

标签: android service otto

我正在使用OttoeventsIntentService发送到我的活动。 IntentService 从服务器下载文件并将进度发送到活动,这与otto非常合作。   -

到目前为止我已经完成了

  1. OnResume

    中注册了otto
    BusStation.getBus().unregister(this);
    
  2. 创建了接收事件的功能

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

    1. 取消注册OnPause

      中的总线

      BusStation.getBus().unregister(this);

    2. 我有Button,点击DownloadService启动,此服务将下载进度发送到receiveProgress功能。

    3. 但是当我关闭我的应用并重新启动应用,然后如果DownloadSerice仍在下载文件时,它永远不会在receiveProgress上发送下载进度事件 所以如何重新解决这个问题。

1 个答案:

答案 0 :(得分:0)

我假设BusStation.getBus()返回一个单例。但是,当您重新启动应用程序时,必须再次创建单例,因此它不再是同一个实例。

您可以使用LocalBroadcastManager来解决此问题:

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