问题标签 [android-asynctask]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 安卓异步任务
有一个像这样的循环的异步任务是一个好习惯吗?
因为我需要等待我的活动和服务需要与 APi 通信。
谢谢
android - 干净地处理 ASP.NET 异步页面上的 AsyncTimeout
根据这篇文章
始终调用 Begin 事件处理程序
我直到最近才真正理解的 AsyncTimeout 的第二个含义是始终调用已注册异步任务的开始事件处理程序,即使页面在 ASP.NET 开始执行该任务之前已经超时。
在这种情况下,剩下的任务基本上就注定了。该页面已经超时,但 ASP.NET 仍将执行为所有已注册任务调用 begin 事件处理程序的动作,然后立即调用其相应的超时事件处理程序。
AsyncTimeout 并不意味着异步任务取消
在可能的情况下,一旦整个页面超时已经触发,我应该注意不要启动其他任务,并且一旦发生超时,我应该取消剩余的正在运行的任务。这是推荐/安全的吗?鉴于异步任务可能在多个位置,我将如何彻底取消任何 HttpWebRequest.BeginGetResponse 调用?例如,如果我在 BeginGetResponse 调用中,我应该返回什么来让 IAsyncResult 安全地停止其轨道中的处理?相同的准则是否适用于 SqlCommand.BeginExecuteReader?
我从几个示例和我自己的补充中整理了一个示例代码:
更新:我还应该提供其他信息吗?
android - 外部类中的 Android AsyncTask
我一直在开发一个应用程序,AsyncTask
当它在内部类中时,我设法让它正常工作。
现在,我正在重构代码,以便它AsyncTask
位于一个单独的类中,但我想知道,ProgressDialog
一旦任务成功完成,我如何杀死并启动一个新的 Activity?我已经尝试在该onPostExecute(..)
方法中启动一个新的 Activity,但我知道这行不通。
在 AsyncTask 的构造函数中将我的 UI 线程活动作为参数传递似乎不起作用:
我一直得到一个NullPointerException
,也许我错过了一些东西,但这对我不起作用。
android - HTC Sense 上的 AsyncTask 错误
我正在使用具有 HTS 感的 HTC Hero。
我的经验是有时 AsyncTask 不会在 execute() 上运行 doInBackground 方法;
它只出现在我的英雄身上。有人遇到过同样的问题吗?
/ 马丁
java - Java 计时器 - 调用的函数未完成!
所以我有一个TimerTask task
调用onTimerComplete()
它的函数run()
onTimerComplete()
看起来像这样:
我做了一个Timer t
,我安排TimerTask
了t.schedule(task, 2000);
问题是,当计时器到时并且任务运行我onTimerComplete()
但该功能没有完成。它运行myFunc1()
但永远不会完成它也不会调用myFunc2()
但是,如果我onTimerComplete()
直接打电话,一切正常。
这是怎么回事?
java - 在 AsyncTask 中使用 HttpClient 获取数据(响应体)并将 AsyncTask 之外的数据返回到 UI 线程
基本上我想知道我如何能够完成我在该主题中所写的内容。我浏览了很多关于 AsyncTask 的教程,但我无法让它工作。我有一个小表单(EditText),它将获取用户在那里输入的内容,并将其转换为 url 查询,供应用程序查找,然后显示结果。
我认为似乎可行的是:在我的主要活动中,我有一个名为 responseBody 的字符串。然后用户单击搜索按钮,它将转到我的搜索功能,并从那里调用带有 URL 的 GrabUrl 方法,该方法将启动 asyncdata,当该过程完成时,onPostExecute 方法将使用函数 activity.this.setResponseBody(content )。
这就是我的代码看起来最重要的部分(我认为)。
android - ProgressDialog 在外部 AsyncTask 中不起作用
我开始认为要让 ProgressDialog 工作,AsyncTask 必须是 Activity 类中的内部类。真的?[稍后编辑......答案是错误的,我不确定这是一个错误还是什么。我使用的是安卓 1.5。我将阅读服务。]
我有一个使用数据库来操作信息的活动。如果数据库已填充,一切都很好。如果没有填充,那么我需要从网站下载信息,填充数据库,然后访问填充的数据库以完成 onCreate 中的视图。
问题是无法确定 AsyncTask 线程何时完成填充数据库,我收到以下强制关闭错误消息:对不起!应用程序意外停止。我单击强制关闭按钮,后台 AsyncTask 线程继续工作,数据库被填充,一切正常。
我需要摆脱该错误消息,并且需要一些有关如何执行此操作的帮助。这是一些伪代码:
在一个单独的文件中:
这是来自模拟器的堆栈跟踪:
我究竟做错了什么?
雪花先生,
试过:
Activity.this 被标记为错误:范围内没有 Activity 类型的封闭实例可访问
我在想我需要 FillDB 扩展 Activity,然后在 FillDB 中创建一个私有类来扩展 AsyncTask?那行不通。无法保证 FillDB 活动何时启动并且不能使用 startActivityForResult,因为 AsyncTask 完成后没有返回任何结果。
更新:尝试在调用类中创建一个私有类。仍然无法显示 ProgressDialog。错误之一是:无法添加窗口——令牌 null 不适用于应用程序。我不知道指的是什么令牌。
android - AsyncTask、RejectedExecutionException 和任务限制
我正在从远程服务器获取大量缩略图,并使用 AsyncTask 在网格视图中显示它们。问题是,我的网格视图一次显示 20 个缩略图,因此创建 20 个 AsyncTask 并启动 20 个执行,每个缩略图一个。
我RejectedExecution
的代码出现异常。我记得在某处读到 AsyncTask 一次可以在其队列中拥有的任务数量是有限制的,我可能会遇到这个问题。这个栏被取消了吗?
有没有办法增加这个限制?忽略这个异常是否安全?(通过有一个空catch(RejectedException e){}
块?)
我在 Android 1.6 模拟器和我的代码中的 API 级别上运行此代码(minSDKVersion 为 3)。[编辑:添加了 SDK 和 API 级别信息]
android - Android 1.5:调用 get() 方法时未调用 Asynctask doInBackground()
我遇到了异步任务执行方式的问题。这是问题代码:
我在这里所做的是创建一个新的 asynctask 对象,将其分配给 firstTask 然后执行它。然后,我想在第一个异步任务完成后触发一个单独的异步任务,并确保它返回一个成功值(在本例中为 1)。这在 Android 2.0 及更高版本上完美运行。但是,我正在使用 Android 1.5 进行测试,并且开始出现问题。上面的代码将运行第一个异步任务,但 doInBackground() 从未被调用,尽管 onPreExecute() 被调用。如果我要在没有 get() 方法的情况下执行第一个任务,则调用 doInBackground() 并且一切都按预期工作。除了现在我没有办法确定第一个任务是否成功完成,以便我可以告诉第二个任务执行。假设这是 Android 1.5 上的 asynctask 错误是否安全?特别是因为 API (https://developer.android.com/reference/android/os/AsyncTask.html#get%28%29)说get方法从API 3开始就已经实现了。有没有办法解决这个问题?或者另一种方法来确定第一个任务已经完成?
android - 即使 Activity 已销毁,AsyncTask 也不会停止
我有一个AsyncTask
对象,它在创建时开始执行Activity
并在后台执行操作(最多下载 100 张图像)。一切正常,但有一种我无法理解的特殊行为。
例如:当 android 屏幕的方向发生变化时,它Activity
会被销毁并再次创建。所以我重写了该onRetainNonConfigurationInstance()
方法并将所有下载的数据保存在AsyncTask
. 我这样做的目的是不让AsyncTask
每次运行都Activity
在方向更改期间被破坏-创建,但正如我在日志中看到的那样,前一个AsyncTask
仍在执行。(虽然数据保存正确)
我什至试图取消活动AsyncTask
的onDestroy()
方法,但日志仍然显示AsyncTask
为正在运行。
这是一种非常奇怪的行为,如果有人能告诉我停止/取消AsyncTask
.