- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在运行一个队列,我正在下载视频并使队列正常工作,需要强制调用 AsyncTask 的 postExecute .. 或者必须有一个事件,当我的 asynctask 被处理器杀死时我可以得到它说“没有更多的后台任务”..内存不足..OnCancelled 也没有被调用...有什么帮助吗???
@kdehairy Intent 服务???好的,实际上我需要更新我的用户界面。例如,我有一个正在下载的视频,它是在异步任务中启动的,我会跟踪该 block 并相应地更新我的自定义进度条,如果用户破坏了 Activity 我不会取消我的 ansynctask 直到我的工作完成完成..我跟踪 asynctask..如果由于某种原因我的 asynctask 停止,即使它在后台...它再次询问任务..这是由服务完成的...我说的是即使我不知道我的 asynctask从服务或应用程序排队...但我只是跳过正在排队的 asyncatsks 的轨道..并从堆栈中推送和弹出..asynctask postexecute 刷新我的 View ...就像如果 asynctask 正在从服务运行我检查 postExecute 如果我UI 屏幕是可见的...比我调用新的 Intent..with Flags SingleTop 和 New Task 这样我可以刷新我的进度条..我可以使用 IntentService 更新我的 UI 吗..它会在 UIThread 还是工作线程上运行..
你能给我举个例子吗...???谢谢 Kdehairy
最佳答案
如果处理流程的生命周期对您来说至关重要,那么最好使用服务。AsyncTask 不是系统组件(服务是)。
IntentService
。要更新 UI,您可以使用广播。如下:
Intent intent = new Intent(ACTION_UPDATE_PROGRESS);
intent.putExtra(EXTRA_POSITION, currentValue);
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
在这里,我们使用 LocalBroadcastManager
发送一个广播,因为我们希望这个广播对应用程序保密。在您的 Activity 中:
// this is the broadcast receiver object that will handle our UI updates.
private BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
int position = intent.getIntExtra(YourService.EXTRA_POSITION, 0);
// do your UI updates here.
}
}
@Override
protected void onResume() {
// register for the broadcast.
LocalBroadcastManager.getInstance(this).registerReceiver(
mReceiver,
new IntentFilter(YourService.ACTION_UPDATE_PROGRESS));
super.onResume();
}
@Override
protected void onPause() {
// unregister when activity is paused.
LocalBroadcastManager.getInstance(PlayerActivity.this)
.unregisterReceiver(mPlayerReceiver);
super.onPause();
}
如果您发现任何不清楚的地方,请告诉我。
关于android - 当 android 终止后台任务时,AsyncTask postExecute 或 onCancelled 不会被调用 - 不再有后台进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11734360/
我最近更新了 ADT 插件,我的整个 Eclipse-Android 构建系统都停止工作了。从那以后,我尝试了我在互联网上可以找到的所有关于如何解决这个问题的方法。徒然。如果有人有确定的方法来解决此问
我已经知道有类似的话题,但对我来说没有任何帮助...... 这里是信息: 该应用程序始终在模拟器和设备上运行。我最近将该项目重命名为另一个名称。仍然工作得很好。今天我意识到它没有更改文件夹名称,然后它
在装有El Capitan的MacMini上,我无法再进行冲泡了。我收到以下错误: /usr/local/Library/Homebrew/config.rb:34:in `initialize':
是的,所以我不知道发生了什么。我一直在编写一个 AJAX 评论脚本,并且它可以工作,但它不再工作了。我从备份中恢复了它,以防万一我改变了任何东西,但没有运气。它转到表单的“操作”而不是 jQuery,
请原谅我的无能...我正在尝试在全局 var 阶段不再未定义后使用 Proxy 执行一些代码。这是我天真的尝试: ``` var stage = undefined let myObj; let st
我对 segues 了解不多,但我已经开始工作了..但突然间它不再工作了...... 我的代码似乎可以工作,但没有发生 segue: NSLog(@"login started"); if ([use
我已将以下重写规则添加到我的 web.config 中。它运行良好,阻止了所有提及的推荐垃圾邮件站点。然而,今天我突然注意到 social-buttons.com 突然出现在我的 Google Ana
在 C++ 中,可以在翻译单元中使用 static 关键字来影响符号(变量或函数声明)的可见性。 在 n3092 中,这已被弃用: Annex D.2 [depr.static] The use of
升级到 com.crashlytics.sdk.android:crashlytics:2.7.1@aar 后(从 2.6.8 开始),我无法再在 Firebase 应用中禁用 Crashlytics
您好,我遇到了一些障碍,我一直在为我的应用程序重新设计菜单导航。我设法做到了。但现在我的应用程序的一项功能已决定停止运行。 想法是你摇动你的手机,它会随机选择一张图片,与应用程序分开的代码工作正常,就
我有一行(容器)包含三个元素,我想水平显示它们之间的间距相等(并且行的左侧或右侧没有空格)。我正在使用带有 justify-content:space-between 的 flexbox。 这是在 F
直到最近,我才能够在 Windows 上使用 python 3.6.7 时安装 tensorflow 1.5.0 包。现在我不能,从下面的“来自版本”的消息来看,似乎根本没有可用的 tensorflo
不确定是否与最近的更新有关,但我突然无法在 Android Studio 编辑器中获得单行间距。如果我尝试将它更改为 1,它让我设置它,但当我按下“应用”时,它会迅速恢复为 1.5。用不同的字体试过,
我遵循了有关如何在 macOS 上安装 pip 的在线说明(例如 this、this 和 this)。 我看起来很简单,但它不适合我。 我的 python --version 是 2.7.10。 当我
Due to rounding errors, most floating-point numbers end up being slightly imprecise. https://www.flo
我试图让用户从他们在 Android 上的库中选择一张图片。但是当我使用 PictureChooser 插件时,它似乎不再起作用了 我看到这段代码可以工作,但现在不行了,我也不知道为什么。
自 .NET 4.5 起,Exception.HResult 的 setter/getter 现在是 public,但它曾经是 protected。 来自 MSDN: Starting with th
今天去处理一个较旧的 Python2.7 AppEngine 标准项目,但我似乎无法让端点工作。我下载了示例代码,看看我的项目是否是罪魁祸首,但该示例也不起作用。 https://cloud.goog
我是一名优秀的程序员,十分优秀!