草庐IT

asynctasks

全部标签

android - 在 AsyncTask 的 doInBackground() 中使用 OkHttp 库发出 HTTP 请求会阻止 UI 操作

我尝试使用call.execute()在AsyncTask中发出OkHttp请求——同步调用。我的布局中有两个按钮。按下button1启动AsyncTask,执行OkHttprequest.call.execute()。然后按下按钮2,我只更新了一个TextView。观察:当AsyncTask运行时,我无法更新TextView。但是,如果我不使用AsyncTask并使用OkHttpClient.newCall().enqueue()方法,那么我可以通过按button2来更新TextView。“为什么在这种情况下使用AsyncTask不起作用”的任何答案?源代码示例:bpost=(But

java - 如何在 Android 中的 AsyncTask 上返回匿名列表或 ArrayList

我有6种不同类型的List完成后的结果AsyncTask.和List结果应该返回到Activity.例如:List,List,List,List,List最后List.这是我的AsyncTask:publicclassmyAsyncextendsAsyncTask{privateListresultList;@OverrideprotectedListdoInBackground(String...params){//params[0]isurl//params[1]istypecallAPIapi=newcallAPI(params[0],params[1]);//According

android - 取消所有 AsyncTask?

我有一个用于获取媒体文件缩略图的类。这个Loader类为每个ImageView启动一个AsyncTask(在SomeAdapter#getView()中调用)。任务本身做了很多事情,其中​​之一是调用DiskLruCache,但是当卸载SD卡时,任务仍在运行时应用程序崩溃。如果卡状态发生变化,我知道如何注册。所以我需要一种方法来停止所有正在运行的任务。你能帮忙的话,我会很高兴。 最佳答案 只需遍历所有列表并使用以下命令将取消所有正在运行的异步任务。if(myAsyncTask.getStatus().equals(AsyncTask

Android:为什么我会收到这些 AsyncTask 错误?

我有一个asyncTaskProc,它从数据库中读取一些信息并将其写入用户界面...该代码在Android4.0上完美运行,但在2.3上不起作用...这是代码新的异步任务`公共(public)类IceCastPoll扩展TimerTask{publicIceCastPoll(){}@TargetApi(9)publicvoidrun(){newAsyncTaskProc().execute();}}`异步任务的实现@TargetApi(9)classAsyncTaskProcextendsAsyncTask{Liststreams=null;@Overrideprotectedvoid

android - AsyncTask : DoInBackground(String. ..) 与 DoInBackground(Params...) 冲突?

当尝试使用Asynctask执行HTTPpost时,我得到以下信息:ASyncTask:DoInBackground(String...)clasheswithDoInBackground(Params...)inAndroid.os.AsyncTask;attemptingtouseincompatiblereturntype我该如何解决这个问题?这是我第一次使用AsyncTask。导致错误的特定行:@OverrideprotectedStringdoInBackground(String...params){来自完整AsyncTask的代码:privateclassMyTaskex

Android:识别 AsyncTask 正在运行的代码

在Eclipse的调试窗口中,我看到一个线程显示:线程异步任务#11有没有办法确定AsyncTask所指的实际代码段?我是否必须在代码中添加一些东西来识别正在运行的线程? 最佳答案 您可以在doInBackground函数的开头命名AsyncTask线程:publicvoiddoInBackground(Params...params){Thread.currentThread().setName("Foo(AsyncTask)");//...restofyourAsyncTaskprocessing...}指定的名称将显示在Ecl

Android 最佳实践 AsyncTask

我是Android开发新手。抱歉问了一个愚蠢的问题。我需要检查几个http资源(resource1、resource2...等)并检查它们是否已启动。如果资源1不可用,则该应用程序需要检查互联网是否正常运行(可能是pinggoogle?),然后如果连接确实有效,则它需要检查所有其他资源并将有关已关闭内容的信息放入通知抽屉.使用AsyncTask和HttpURLConnection为one资源做这件事非常简单,但我不太明白如何遵循执行逻辑异步调用(资源1->谷歌->资源2->在一个地方收集信息->显示通知)。它的最佳实践是什么? 最佳答案

android - 从 IntentService 调用 AsyncTask 的问题

我已经创建了IntentService类并执行了asyncTask但是当onPreExecute()在此代码行pDialog中被调用时出现异常。显示();AsyncHandlerService类---publicclassAsyncHandlerServiceextendsIntentService{ProgressDialogpDialog;HttpPostpost;HttpResponseresponse;Contextctx;publicAsyncHandlerService(){super("AsyncHandlerService");ctx=this;}@Overridepr

android - Java : Illegal type 'void' in ASyncTask

希望你能为我阐明这一点。我正在尝试用Java为Android应用程序创建以下AsyncTask。当我输入以下代码时,AndroidStudio会突出显示“void”参数和错误:"IllegalType:Void".经过多次谷歌搜索后,我仍然无法理解这里的问题所在(老实说,我对整件事感到很困惑!)。privateclassBackgroundTaskextendsAsyncTask{protectedvoiddoInBackground(URL...inputURL){URLsearchURL=inputURL[0];//Step2:GetDataStringJSONdata=getJS

android - 防止asynctask被多次执行

我在单击按钮时从我的UI线程调用一个异步任务,它会执行一些HTTP-Get请求。如果用户在当前任务完成前再次点击按钮会发生什么?这是由asynctask内部处理的,还是我需要自己处理? 最佳答案 有两种方法可以做到这一点。1:显示进度对话框并阻止用户进一步输入。2:在私有(private)类范围内创建AsyncTask变量。然后这将永远不会运行超过一次。 关于android-防止asynctask被多次执行,我们在StackOverflow上找到一个类似的问题: