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);
}