改造回调和saveinstanceState

时间:2016-01-04 18:48:41

标签: android retrofit2

我对Retrofit2回调和onSaveInstanceState有疑问。我想在 onSaveInstanceState 中保存两个变量的状态, var1 var2 。这两个变量(实际上不是简单的变量)在onResponse方法的 Retrofit回调中取值。它只持续几毫秒但是如果我在两个变量在onResponse中获取它们的值之前旋转设备应用程序崩溃。我不太清楚如何解决这种情况。我想了解你的方法,以避免崩溃。(实际上我有2个改装回调,它们彼此独立,一个用于绘制图形,另一个用于在textview中显示数据)。先谢谢我的英语能力差。

  @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putInt("var1",var1);
        outState.putInt("var2",var2);

   }

  retrofitcallback() {
       return new Callback<T>() {
                    public void onResponse() {
                       var1=...
                       var2=...
                    }
                    public void onFailure() {
                    }
       };
    }

1 个答案:

答案 0 :(得分:0)

首先,应用程序可能崩溃,因为var1和var2为空。

更重要的是 - 我建议您考虑一下您的客户端 - 服务器设计。你正在UI类中使用回调和改进调用 - 这是一种糟糕的方法,因为它会导致内存泄漏,并且几乎不可能管理生命周期。考虑使用加载器或服务,它会更好,也更容易。

P.S。当应用程序崩溃时,请始终提供堆栈跟踪。