- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想清除从服务器下载照片并使用 disklrucache 的 Activity 的缓存。和 lrucache存储它们将我的 Activity 是活跃的。我希望当用户离开此 Activity 时清除缓存。那么我该如何处理呢?在 onPause 中检查 isFinishing() 的状态是好的解决方案还是我应该覆盖 backpressed .我知道当用户按下后退按钮时,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/
当调用 FragmentManager 时,我收到一条错误消息,指出 Activity 已被销毁。在进行事务调用之前是否检查 FragmentManager 可以执行,或者我是否需要获取 Activi
在阅读了 http://developer.android.com/reference/android/app/Activity.html 上关于 isFinishing() 的 Android 文档
我正在尝试使用操作将数据保存到 plist 文件。我想实现异步保存,所以我重写了 start()但是,当我尝试检查保存是否已完成时,isFinished 仍然为 false。但是数据已成功保存,正如我
我想清除从服务器下载照片并使用 disklrucache 的 Activity 的缓存。和 lrucache存储它们将我的 Activity 是活跃的。我希望当用户离开此 Activity 时清除缓存
概览 有异步操作子类 将此操作添加到队列中。 我在开始之前取消了这个操作。 运行时错误/警告: SomeOperation isFinished=YES 没有被它所在的队列启动 问题: 这是可以忽略的
我在 Swift 中对 NSOperation 进行子类化,并且需要覆盖 isExecuting 和 isFinished 属性,因为我正在覆盖 start 方法。 我遇到的问题是如何在保留键值观察
每次我的应用程序启动或退出事件时,我都会创建一个 NSOperation。我需要使用依赖项将它们排入队列,以便两个永远不会同时执行,而是一个接一个地执行。 这样做安全吗? 在 App Delegate
如果这个问题听起来非常基础,我们深表歉意。我有一个具有异步网络回调的 Activity。回调可以在用户离开 Activity 后执行。 作为检查,我想使用 isFinishing()(我不能使用 is
在显示对话框之前,我检查 Activity 是否正在完成以避免应用程序崩溃。 if(!activity.isFinishing()){ showDialog(); } 但在某些情况下,它会返回
在这个简单的代码 (Xcode 8.3) 中,我创建了一个 Operation 子类实例,注册了它的 isFinished 属性的 KVO 观察,并通过将它添加到我的队列来启动操作: class My
在我的 Activity 中,我经常使用这个成语: @Override public void onDestroy() { super.onDestroy(); if (isFinis
我正在尝试调整 HttpServletRequestWrapper(参见 How to read InputStream multiple times),以便在过滤器中使用 HTTP Post 正文后
我正在尝试使用 NSOperations 拆分我的程序流。我正在使用 Parse 框架制作一个简单的消息传递应用程序。我想显示一些消息,然后删除它们。除非删除操作完成,否则不应调用显示消息,因此我想尝
我有一个发出 finished() 信号的 QThread,但它的 isFinished() 返回 False。这是为什么?如何知道 isFinished 何时开始返回 True? from __fu
我有一个 NSOperation 子类,它从 UITableView 运行异步操作。 我像这样覆盖正确的开始和结束方法: - (void)start { [self willChangeVal
示范 - (void)test_NSOperationCallsCompletionBlockWhenFinished { __block BOOL flag = NO; NSOper
我正在阅读《Android 游戏入门,第 2 版》这本书。 第129页说 '在 onPause() 中,我们只是暂停我们的主循环线程,如果Activity.isFinishing() 返回 true,
我必须在我的应用程序完成运行后清除一些应用程序数据。据我所知,onDestroy() 可能不会被调用。所以我决定检查根 Activity 的 onPause() 中的 isFinishing() ==
下面是我的 qthread 实现的代码。我正在尝试从卫星获取 gps 数据。即使程序退出 gpsSearch() 槽函数,QThread 也不会产生 finished() 信号。每当单击按钮时,都会调
如果用户仍在当前 Activity 中,我有一个需要显示的弹出窗口,几秒钟后。我实现了 stament 检查 Activity 是否未完成/销毁然后显示弹出窗口,它工作正常,周末用户 :)(从一个 A
我是一名优秀的程序员,十分优秀!