1

我已在onRetainNonConfigurationInstance()上实现了一个Activity来处理android屏幕方向。这里是代码:Android:onRetainNonConfigurationInstance未调用屏幕方向更改

@Override 
    public Object onRetainNonConfigurationInstance() { 
    Log.d("[DEBUG]", "onRetainNonConfigurationInstance : " 
     + this.getClass().getName()); 
    MyState state = new MyState(); 

    return state; 
    } 

然后,我在Android设备上安装了应用程序。下面是配置:

Device : Samsung Nexus S 
Android version : 4.0.4 
Kernel version : [email protected] #1 

当我通过改变屏幕的方向调试手机上的应用程序,我onRetainNonConfigurationInstance()方法没有被调用。

即使很奇怪,我在onCreate()我的Activity中添加了一条日志行。根据文档,Android应该在屏幕方向发生时重新创建活动。所以,我有类似如下:)

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.mylist); 
    Log.d(Constants.LOG_TAG, "Oncreate : " + this.getClass().getName()); 
} 

但在这里,的onCreate(方法不叫当我改变设备上的屏幕方向。

你是否已经遇到过这个问题?

在文档中,他们也说这个方法已被弃用,而我应该使用与片段相关的东西等。这可能是我没有调用方法的原因吗?

其实,我实施为2.3.3到3.0设备,但我试验装置是4.0.4:它可以是什么问题?我认为Android OS版本之间存在某种向后兼容性。

在此先感谢,

+0

请分享您的清单文件。 – AndroDev 2012-04-11 12:02:41

回答

2

你可能在为活动的清单文件,其中says你会处理的方向改变自己,因此onCreate方法不叫申报orientation一个android:configChanges