Android 解决Activity被销毁焦点监听任被触发
时间: 2024-02-06 10:03:12 浏览: 154
Android App中实现向右滑动销毁功能的要点解析
在 Android 中,如果 Activity 被销毁了,再次启动时焦点监听器 (onFocusChanged) 可能会被重新触发,这是因为系统会重新创建视图树并重新将焦点分配给视图。
要避免这种情况,可以在 Activity 的 onPause() 方法中取消焦点监听器。例如:
```
@Override
protected void onPause() {
super.onPause();
View view = this.getCurrentFocus();
if (view != null) {
view.setOnFocusChangeListener(null);
}
}
```
在 onPause() 方法中,我们首先获取当前焦点的 View,然后将其焦点监听器设置为 null,这样在 Activity 被销毁重新创建时,就不会再次触发焦点监听器了。
另外,也可以在 Activity 的 onDestroy() 方法中取消焦点监听器,这样可以确保在 Activity 被销毁时一定会取消监听器。
阅读全文