草庐IT

aSyncTask

全部标签

android - 如何完全杀死/删除/删除/停止 AsyncTask

我制作了一个从我们的服务器下载视频的应用。问题是:当我取消下载时,我打电话:myAsyncTask.cancel(true)我注意到,myAsyncTask并没有在调用取消时停止...我的ProgressDialog仍然上升,就像从一个状态跳到另一个状态,每次都向我显示我通过单击下载按钮取消并重新启动AsyncTask,一个新的AsyncTask启动......每次我点击下载..然后取消,然后再次下载一个单独的AsyncTask启动。为什么myAsynTask.cancle(true)没有取消我的任务?我不想再把它放在后台了。如果单击取消,我只想将其完全关闭。怎么做?编辑:感谢gtum

Android AsyncTask [无法在未调用 Looper.prepare() 的线程内创建处理程序]

我已经基于一个函数创建了一个图片上传AsyncTask。上传后,我在onPostExecute()上收到此错误。我在Runnable上阅读了一些StackOverflow答案,但尽管实现了不同的解决方案,但我仍然一遍又一遍地收到错误。我的代码:classuploadFileextendsAsyncTask{privateProgressDialogpDialog;/***--------------------------------------------------------------------*---------------------------------Befores

android - ASyncTasks 阻止其他人

我有2个ASyncTask,一个从httpPost检索值,另一个更新UI的一些元素(包括ListView)。问题在于,由于两个ASyncTask共享相同的后台线程,如果网络操作首先启动并且运行缓慢(由于网络连接不良)。其他后台线程耗时太长,导致应用不负责任。由于两个ASyncTask都是独立的,因此让另一个等待另一个是非常愚蠢的。不同的类使用不同的线程会更符合逻辑,我错了吗?阅读ASyncTask博士。谈到使用executeOnExecutor(),但是在API级别低于11的情况下如何解决?这里有一个重现“问题”的小例子newTask1().execute();newTask2().e

android - 使用OKHttp,AsyncTask中的同步请求和OKhttp异步请求有什么区别?

OKHttp支持synchronousandasynchronousapi.如果我想发出异步请求,我可以:使用AsyncTask,并发出OKhttp同步api。发布一个OKhttp异步api。这两个选项有什么区别?哪个更好? 最佳答案 差别很大!对HTTP请求使用AsyncTask几乎是您在Android上可以做的最糟糕的事情之一。它充满了最好无条件避免的问题和陷阱。例如,您不能在执行期间取消请求。使用AsyncTask的模式通常也会泄露对Activity的引用,这是Android开发的一大罪过。OkHttp的async非常优越,原

android - AsyncTask 返回值

我的android应用程序连接到我的网站以检索和上传信息,因此我使用AsyncTask线程。在一个实例中,我需要我的线程向我的主线程返回一个真值或假值。有没有办法从AsyncTask执行函数中获取这个返回值?当我执行以下操作时:Toast.makeText(Locate.this,"Testing:"+locationUpdate.execute(location),Toast.LENGTH_LONG).show();我只是得到了很多胡言乱语。我认为我需要一种暂停主线程直到第二个线程完成的方法。第二个线程调用主线程中的一个函数来设置我的返回值。所以当第二个线程完成时,主线程可以取消暂停

android - AsyncTask,它必须承受这样的性能损失吗……?

我正在开发一个小型应用程序,它可以读取特定的html页面,重新格式化它们,然后在WebView中显示它们。如果我在GUI线程中运行我的代码,与简单地让WebView显示原始html页面相比,性能损失几乎可以忽略不计。但是如果我是个好child并且按照我被告知的那样做,我应该使用AsyncTask在后台运行代码,以免在这3-5秒内卡住GUI,我的代码完成了它的工作.问题是......如果我这样做,代码需要超过10倍的时间才能完成。显示一个页面需要60多秒,这是NotAcceptable。跟踪问题,TraceView显示我的AsyncTask(默认优先级)以大约10毫秒的block运行,大

android - 并行执行多个 AsyncTask

我正在使用AndroidSDK4.0.3API15,我想并行运行多个AsyncTask。我从网络服务器获取我的数据并实时动画(10fps)。但根据用户操作,我还需要向Web服务器发送一些数据。发生这种情况时,我的动画会暂停一小段时间(发送数据进入队列并获取数据等待它完成),因此我无法捕捉实时。这个answer很好解释,但我无法让它工作。因此,任何帮助将不胜感激。我想我需要使用这个功能来实现:AsyncTask.executeOnExecutor(Executorexec,Params...params)但我无法将执行器作为参数传递,也无法实例化执行器。这是我的AsyncTask类:pu

android - 从另一个 AsyncTask 调用 AsyncTask

在我的AsyncTask的某个时刻,在完成一些验证之后,我需要派生另一个线程来做一些其他工作。所以我现在想要两个后台线程,每个都做自己的事情(每个执行大约2-3秒)。我们的想法是最大限度地提高Atrix等双核处理器的性能。创建另一个异步任务并从第一个执行它是否可以接受?任何人都可以提出更好的方法吗?谢谢!编辑:我想知道第二个任务中的publishProgress()甚至会做什么......因为它不是从Activity启动的? 最佳答案 Isitacceptabletocreateanotherasynctask&executeitf

android - 在 Fragment 中选择 AsyncTaskLoader 和 AsyncTask 的指南

看LoaderCustomSupport(使用AsyncTaskLoader)和FragmentRetainInstanceSupport(使用Thread,几乎相当于AsyncTask)这两个例子有以下相似之处。加载数据时都不会阻塞UI线程当用户执行屏幕旋转等配置更改时,数据获取线程不会被破坏。当数据获取线程完成数据获取后,它可以更新到正确的FragmentUI但是,还是有区别的。AsyncTaskLoader似乎没有简单的方法可以将中间进度更新到进度条对话框异步任务对此不确定。但Android文档似乎推荐AsyncTaskLoader用于异步数据加载并将最终结果更新到UI?是否有任

Android AsyncTask 上下文行为

我一直在使用Android中的AsyncTasks,我正在处理一个问题。举一个简单的例子,一个带有一个AsyncTask的Activity。后台的任务并没有做任何壮观的事情,它只是休眠了8秒。在onPostExecute()方法中的AsyncTask结束时,我只是将按钮可见性状态设置为View.VISIBLE,只是为了验证我的结果。现在,这非常有效,直到用户决定在AsyncTask工作时(在8秒sleep窗口内)改变他的手机方向。我了解AndroidActivity生命周期,并且我知道该Activity会被销毁并重新创建。这就是问题所在。AsyncTask指的是一个按钮,并且显然包含对