Android 了解配置是否更改的最佳方法是什么?

Android 了解配置是否更改的最佳方法是什么?,android,android-configchanges,Android,Android Configchanges,我不知道如何在我的应用程序上获取此信息:如何知道活动何时因配置更改而重新启动?(任何配置更改) 在我的代码中,如果活动“正常”重新启动,但不是因为配置更改,我需要执行一个方法。当onconfigurationchange()方法检测方向更改时 类级别变量 private boolean isOrientationChanged = false; 更改方向时指定真值 @Override public void onConfigurationChanged(Configuration newCo

我不知道如何在我的应用程序上获取此信息:如何知道活动何时因配置更改而重新启动?(任何配置更改)


在我的代码中,如果活动“正常”重新启动,但不是因为配置更改,我需要执行一个方法。

onconfigurationchange()
方法检测方向更改时

类级别变量

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方法检查当前配置

公共无效OnConfiguration已更改(配置newConfig){


由于配置更改而重新启动
活动时,可以保证调用
onDestroy()
方法。在
onDestroy()中
方法,您可以使用来检查
活动是否正在被销毁,以便由于配置更改而重新创建。由于活动状态不能保存为
onSaveInstanceState(),
将在
onStop()之前被调用
method,您可以考虑使用
SharedReference
保存状态,然后在
onCreate()
方法中检索状态


通过在
onDestroy()中处理此问题
方法,我们确保处理一个背景活动的情况,该活动以前是以纵向模式启动的,现在尝试以横向模式显示。

是的,我考虑过,但这意味着我更改清单,在标签中添加所有可能的配置
android:configChanges
我会的,但我认为可能会有更简单的方法。@YoannHercouet,嗯,让我们看看其他用户提供了什么解决方案。我对你的答案投了赞成票,因为它是一个解决方案,但我会保留它,以防有人提供更多的解决方案straightforward@YoannHercouet,好的,我也想看看有什么更好/最好的解决方案可以满足这个要求。可以吗我将在下一个应用程序中使用它。这似乎确实是最合适的方式,很遗憾,这不能像您所说的那样保存在实例状态中。
if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
{

}
else if(newConfig.orientation == Configuration.ORIENTATION_PORTRAIT)
{

}
    super.onConfigurationChanged(newConfig);
}