我在使用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 );
View对象会发生什么?它重新创建了吗?当我致电findViewById()
时,它是否已经存在?屏幕旋转后是否重新创建了另一个视图?
答案 0 :(得分:6)
当你setRequestedOrientation()时,视图可能会重新启动。 http://developer.android.com/reference/android/app/Activity.html#setRequestedOrientation(int)
更改此活动的所需方向。如果活动当前处于前台或以其他方式影响屏幕方向,则将立即更改屏幕(可能导致重新启动活动)。否则,这将在下次活动可见时使用。
当您旋转屏幕或更改方向时,默认情况下android将销毁并重新创建视图。 http://developer.android.com/guide/topics/resources/runtime-changes.html