我不确定如何在我的应用程序上获取此信息:如何知道活动何时因配置更改而重新启动?(任何配置更改)。
在我的代码中,如果活动“正常”重新启动但不是因为配置更改,我需要执行一个方法。
我不确定如何在我的应用程序上获取此信息:如何知道活动何时因配置更改而重新启动?(任何配置更改)。
在我的代码中,如果活动“正常”重新启动但不是因为配置更改,我需要执行一个方法。
当Activity
由于配置更改而重新启动时,保证onDestroy()
会调用该方法。在onDestroy()
方法中,您可以使用isChangingConfigurations()来检查是否Activity
由于配置更改而被销毁以便重新创建。由于 Activity 状态无法保存为onSaveInstanceState()
将在方法之前调用onStop()
,因此您可以考虑使用来保存状态,然后在方法SharedPreference
中检索它。onCreate()
通过在onDestroy()
方法中处理这一点,我们确保我们处理了以前以纵向模式启动的后台 Activity,现在尝试以横向模式显示。
当onConfigurationChanged()
检测方向的方法发生变化时。
类级变量
private boolean isOrientationChanged = false;
当方向改变时分配真实值
@Override
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
isOrientationChanged = true;
}
检查 onRestart() 方法中的值并重置它
@Override
public void onRestart()
{
if ( isOrientationChanged )
{
isOrientationChanged = false; // reset the variable for future action.
// Your code
}
}
您可以使用 OnConfigurationChange 方法检查当前配置。
公共无效 onConfigurationChanged(配置 newConfig){
if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
{
}
else if(newConfig.orientation == Configuration.ORIENTATION_PORTRAIT)
{
}
super.onConfigurationChanged(newConfig);
}