Android Studio 1.3 RC 3
您好,
我试图通过重复改变来保留无头片段RetainedFragment.java
的状态。
设备旋转正常。但是,我的MainFragment.java
我startActivityResult(...)
中存在问题,因为隐式活动(打开gallary app)可以查看照片。
RetainedFragment.java
不保留其类成员,即使我在RetainedFragment.java的onCreate()中有setRetainInstance(true)。
我还尝试使用onSavedInstanceState
将mDataInt保存到一个包中,然后从onActivityCreated
方法中检索它。
RetainedFragment.java
是headless fragment
,因此不包含任何用户界面,仅用于保存和恢复状态。
我无法理解的是,旋转变化可以正常工作。它只有当我开始一个新的隐式活动来启动gallary应用程序时。
我正在测试它的类成员称为mDataInt
,并且在实例化类时将其初始值设置为101。然后到onSavedInstanceState
中的2015,以在重新创建RetainedFragment时保留该值。
非常感谢任何建议,
public static class RetainedFragment extends Fragment {
private static final String TAG = RetainedFragment.class.getSimpleName();
private Integer mDataInt = 101;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/* Ensure the data survives runtime configuration changes */
setRetainInstance(true);
if(savedInstanceState == null) {
Log.d(TAG, "onCreate savedInstanceState == null - dataInt: " + mDataInt);
}
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
mDataInt = 2015;
Log.d(TAG, "onSavedInstanceState mDataInt: " + mDataInt);
outState.putInt("DATAINT_KEY", mDataInt);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Log.d(TAG, "onActivityCreated mDataint: " + mDataInt);
if(savedInstanceState != null) {
Log.d(TAG, "onActivityCreated savedInstanceState != null - dataInt: " + savedInstanceState.getInt("DATATINT_KEY"));
}
}
}
答案 0 :(得分:0)
我找到了这个问题的原因,我想在这里发帖,听听任何对此有一些想法的人。
在我已启用Don't keep activities
的开发者选项下,我已禁用此选项。现在应用程序按预期工作