私のアクティビティでは、onDestroy() でいくつかの外部のもの (サービス) を破棄する必要があります。ただし、構成の変更が発生した場合 (キーボードが反転した場合など) は、すぐに復元されるため、これは必要ありません。
問題は、onDestroy() が Back キーを押したことが原因なのか、設定変更プロセスの一部なのかをどのように区別するかということです。
@CommonsWareの回答の後、それは非常に簡単になります)のようなもの:
@Override
onDestroy() {
if (mIsChangeConfig == true) {
mIsChangeConfig = false:
} else {
stopService();
}
}
@Override
onRetainNonConfigurationInstance() {
mIsChangeConfig = true;
}