1

我对 Retrofit2 回调和 onSaveInstanceState 有疑问。我想在onSaveInstanceState中保存两个变量var1var2的状态。这两个变量(实际上不是简单的变量)在 onResponse 方法的 Retrofit 回调中获取它们的值。它只持续几毫秒,但是如果我在两个变量在 onResponse 中获取它们的值之前旋转设备,应用程序就会崩溃。我不太清楚如何处理这种情况。我想知道您在这方面的方法以避免崩溃。(实际上我有 2 个改造回调,它们彼此独立,一个用于绘制图形,另一个用于在文本视图中呈现数据)。提前感谢和原谅我糟糕的英语语言技能。

  @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() {
                    }
       };
    }
4

1 回答 1

0

起初,应用程序可能会崩溃,因为 var1 和 var2 为空值。

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

PS 当您的应用程序崩溃时,请始终提供堆栈跟踪。

于 2016-01-04T19:51:30.217 回答