我对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() {
}
};
}
答案 0 :(得分:0)
首先,应用程序可能崩溃,因为var1和var2为空。
更重要的是 - 我建议您考虑一下您的客户端 - 服务器设计。你正在UI类中使用回调和改进调用 - 这是一种糟糕的方法,因为它会导致内存泄漏,并且几乎不可能管理生命周期。考虑使用加载器或服务,它会更好,也更容易。
P.S。当应用程序崩溃时,请始终提供堆栈跟踪。