我有一个android studio项目。当我旋转屏幕时,android销毁并重新创建主要活动。 android是否要重新创建活动,如何在销毁期间检查?
答案 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