Mix*_*Mix 18 android ondestroy android-activity
在我的Activity中,需要在onDestroy()中销毁一些外部事物(服务).但是当配置发生变化时(例如键盘翻转),我不希望这样,因为它会立即恢复.
所以问题是:如何区分onDestroy()是否是由Back-key press或部分配置更改过程引起的?
在@ CommonsWare的回答之后它会很简单)类似于:
@Override
onDestroy() {
if (mIsChangeConfig == true) {
mIsChangeConfig = false:
} else {
stopService();
}
}
@Override
onRetainNonConfigurationInstance() {
mIsChangeConfig = true;
}
Run Code Online (Sandbox Code Playgroud)
Com*_*are 24
在Android 3.x(API级别11)中,您可以调用isChangingConfigurations()以查看由于配置更改而导致活动是否被销毁.
在此之前,覆盖onRetainNonConfigurationInstance()并设置一个布尔数据成员(例如isChangingConfigurations)true,并检查该数据成员onDestroy().
这可能适合你(从如何区分方向更改和离开应用程序android):
使用Activity的isFinishing()方法.
示例代码:
@Override
protected void onDestroy() {
super.onDestroy();
if (isFinishing()) {
// Do stuff
} else {
// It's an orientation change.
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5289 次 |
| 最近记录: |