方向改变时杀死活动

时间:2011-10-15 16:40:23

标签: android

我想知道是否有可能要求Android在方向更改时不重新加载一个Activity(我想重新加载其他人但是要杀掉这个!!)。

我已经检查了我可以在清单中设置的活动属性,但似乎没有人允许这样做。

谢谢!

3 个答案:

答案 0 :(得分:1)

试试这个:

public boolean onRetainNonConfigurationInstance() {
    return true;
}

public onCreate() {
    if(getLastNonConfigurationInstance() != null) {
        finish();
    }
}

答案 1 :(得分:1)

很简单,在您的活动中覆盖onConfigurationChanged(Configuration config)并杀死其中的活动。

例如:

    @Override
    public void onConfigurationChanged (Configuration newConfig)
    {
          super.onConfigurationChanged(newConfig);
          finish();
    }

这将导致在发生配置更改时终止活动。在config changes下的清单中为您的活动选择方向。您可以通过查看newConfig.orientation并将其与Configuration类中的纵向和横向常量进行比较来检查它要更改的方向类型。

答案 2 :(得分:0)

  

我想知道是否有可能要求Android在方向更改时不重新加载一个Activity(我想重新加载其他人但是要杀掉这个!!)。

可能?当然。一个好主意?不会。如果手腕的简单扭曲导致当前活动消失,用户将会感到非常困惑。他们可能会认为您的应用已损坏。

理想情况下,您允许用户以他们想要的任何方向使用您的活动。这是他们的设备,而不是你的设备。

如果由于某种原因某些活动仅在一个方向(例如横向)中有意义,请使用清单中android:orientation元素中的<activity>属性将其保持在该方向。