如何检查android是否要重新创建活动或销毁?

时间:2019-07-14 10:24:15

标签: android android-activity recreate

我有一个android studio项目。当我旋转屏幕时,android销毁并重新创建主要活动。 android是否要重新创建活动,如何在销毁期间检查?

2 个答案:

答案 0 :(得分:2)

您可以使用isFinishing()中的onDestroy通过用户选择确定活动是否正在结束(例如,用户选择通过按回车退出)。

  @Override
  protected void onDestroy() {
    super.onDestroy();
    if (isFinishing()) {
      // wrap stuff up
    } else { 
      //It's an orientation change.
    }
  }

另一种选择(如果您仅定位API> = 11)是isChangingConfigurations

  @Override
  protected void onDestroy() {
    super.onDestroy();
    if (isChangingConfigurations()) {
      //It's an orientation change.
    }
  }

答案 1 :(得分:0)

重写Activity生命周期方法以查看流程。然后使用适当的方法来检查Activity当前状态,例如isChangingConfigurations() 示例代码段。

MainActivity.java

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.i(MainActivity.class.getSimpleName(),"OnStart Called");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.i(MainActivity.class.getSimpleName(),"OnRestart Called");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.i(MainActivity.class.getSimpleName(),"OnDestroy Called");
    }


    @Override
    protected void onPause() {
        super.onPause();
        Log.i(MainActivity.class.getSimpleName(),"OnPause Called");
    }

   @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        Log.i(MainActivity.class.getSimpleName(),"OnConfiguration Changed Called");
    }

}

有关更多详细信息,请参见官方页面activity-lifecycle

相关问题