gpt4 book ai didi

android - 调用 isFinishing() 或 backbuttonpressed?

转载 作者:行者123 更新时间:2023-11-30 03:39:21 24 4
gpt4 key购买 nike

我想清除从服务器下载照片并使用 的 Activity 的缓存。和 存储它们将我的 Activity 是活跃的。我希望当用户离开此 Activity 时清除缓存。那么我该如何处理呢?在 onPause 中检查 isFinishing() 的状态是好的解决方案还是我应该覆盖 .我知道当用户按下后退按钮时,isfinishing 并不确定是否会被调用!

最佳答案

这取决于您希望应用程序的行为如何。

如果您想在 Activity 结束时清除缓存,现在您将它们存储在 onCreate 中,那么

public void onDestroy(){
super.onDestroy();
// clear your cache
}

但是如果你想在用户离开 Activity 时清除缓存,这意味着当它暂停时,你应该在 onPause 方法中清除缓存。但那时你必须将数据存储在 onResume 方法中。我认为当 activiy 也在后台时释放它的内存是一个更好的选择。

编辑:

来自onKeyDown的源码

public boolean onKeyDown(int keyCode, KeyEvent event)  {
1801 if (keyCode == KeyEvent.KEYCODE_BACK) {
1802 if (getApplicationInfo().targetSdkVersion
1803 >= Build.VERSION_CODES.ECLAIR) {
1804 event.startTracking();
1805 } else {
1806 onBackPressed();
1807 }
1808 return true;
1809 }

因此您可以看到,如果按下后退按钮,则会调用 onBackPressed。所以我认为因为你只需要后退按钮处理所以更好地覆盖 onBackPressed 方法

关于android - 调用 isFinishing() 或 backbuttonpressed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16042562/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com