2015-10-16 68 views
2

我有一些使用JNI的本地代码的touble,我怀疑这可能是由于对setRequestedOrientation()的调用。Android - setRequestedOrientation - 活动和视图生命周期

当我调用setRequestedOrientation()时,活动会发生什么?它是刚刚重新启动还是完全被破坏(即被称为“析构函数”和释放内存)?

还有什么发生的意见?如果在onCreate上我有:

protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 

    try 
    { 
     this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE); 

     setContentView(R.layout.activity_XXX); 
     mTermScreenView = (TermScreenView) findViewById(R.id.termScreenView); 

View对象会发生什么?它是否被重新创建?当我调用findViewById()时,它是否已经存在?在屏幕旋转后重新创建另一个视图?

谢谢。

回答

5

当您setRequestedOrientation()视图可能会重新启动。 http://developer.android.com/reference/android/app/Activity.html#setRequestedOrientation(int)

更改此活动的所需方向。如果活动当前处于前台或以其他方式影响屏幕方向,则屏幕将立即更改(可能导致活动重新启动)。否则,这将在下次活动可见时使用。

当您旋转屏幕或更改方向时,默认情况下android会销毁并重新创建视图。 http://developer.android.com/guide/topics/resources/runtime-changes.html

+0

感谢您的帮助。 – Virus721