Android - setRequestedOrientation - 活动和视图生命周期

Vir*_*721 3 java java-native-interface android view

我在使用JNI的本机代码时遇到了一些麻烦,我怀疑这可能是由于调用了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 );
Run Code Online (Sandbox Code Playgroud)

View对象会发生什么?它重新创建了吗?我打电话时它已经存在findViewById()吗?屏幕旋转后是否重新创建了另一个视图?

小智 6

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

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

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