lom*_*mza 1 configuration android rotation
我想知道旋转Android设备时(即更改配置时)会覆盖哪些方法?
onSaveInstanceState(...),onConfigurationChanged(...),onRestoreInstanceState(...)-类似这样的东西吗?
对于我来说,聆听与更改配置有关的整个过程也将很有趣。谢谢。
当您旋转设备时,您的 Activity 将重新创建并且所有变量都将重新初始化。因此,在这种情况下,如果您希望某些值在 Rotation 上保持不变,您也可以使用 the 存储它们的状态,onSaveInstanceState()并且您可以onCreate()通过检查 Bundle is not null 再次恢复。
if(savedInstanceState != null){
// get the restore value from the Bundle
}
Run Code Online (Sandbox Code Playgroud)
作为在哪里onConfigurationChanged(),当你旋转设备(将被调用。注意,这只会叫,如果你选择的配置,你想与处理configChanges属性,在清单)。从参数中,您将获得新的设备配置。
如果您不希望在设备旋转时重新创建您的活动,那么您必须将此行添加到AndroidManifest文件中的活动标签中。
android:ConfigChanges="keyboardHidden|orientation"
Run Code Online (Sandbox Code Playgroud)
小智 5
根据android开发人员参考,您必须使用:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
}
}
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参见:http : //developer.android.com/guide/topics/resources/runtime-changes.html#HandlingTheChange
您可能会对以下内容感兴趣:http : //developer.android.com/guide/topics/manifest/activity-element.html#config
在这里您可以找到所有可以监听的配置监听器。
请记住将它们放在android清单中:
<activity
android:configChanges=["orientation"]
. . .
</activity>
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助...