вы можете использовать isChangingConfigurations()
Чтение из документации
Проверьте, находится ли это действие в процессе уничтожения для воссоздания с новой конфигурацией.Это часто используется в onStop (), чтобы определить, нужно ли очищать состояние или будет ли он передан следующему экземпляру действия с помощью onRetainNonConfigurationInstance ().
Возвращает, если действие разрывается взаказ, который будет воссоздан с новой конфигурацией, возвращает true;else возвращает false
Объясните простым способом с примером
isChangingConfigurations()
- метод, используемый для проверки, будет ли действие уничтожено для повторного создания.(как результат изменения ориентации)
Как это использовать?
если вы используете api> = 11, тогда нет проблем, но если вы используете api <11, томы должны обработать этот метод вручную. Я создаю логическую переменную с именем <strong>IsconfigChange
private boolean IsconfigChange ;
...
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
IsconfigChange = true ;
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@Override
public boolean isChangingConfigurations() {
if(android.os.Build.VERSION.SDK_INT >= 11){
Log.i("DEBUG", "Orientation changed api >= 11 ");
return super.isChangingConfigurations();
}else {
Log.i("DEBUG", "Orientation changed api < 11 ");
return IsconfigChange;
}
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@Override
protected void onStop() {
super.onStop();
if(isChangingConfigurations()){
Log.i("DEBUG", "isChangingConfirgurations OnStop Called");
} else{
Log.i("DEBUG", "OnStop Called");
}
}
Summery
, которую можно использовать isChangingConfigurations
в onStop
чтобы проверить, будет ли приложение остановлено, чтобы быть уничтоженным или из-за изменения ориентации.
или вы можете использовать isFinishing
проверить мой ответ здесь