草庐IT

asynctasks

全部标签

android - 我的 AsyncTask 类中有其他线程。在执行以下方法之前,我如何等待它及其所有线程完成?

AsyncTask类启动了许多其他线程,因为我使用的是第三方库。我不确定库打开了多少个线程,但我想等待它们全部完成,然后再用它们获取的数据填充我的ListView。目前我正在休眠10000毫秒,但这不切实际,因为我不知道它有多大。这个问题的正确解决方案是什么?task=newmTask();task.execute(appsList);newThread(newRunnable(){publicvoidrun(){populateList();}}).start();}privateclassmTaskextendsAsyncTask,Void,Void>{ProgressDialog

java - AsyncTask 卡住 UI 中的 Android Thread.sleep()

我尝试了很多建议,但没有任何效果!当我在后台线程中调用Thread.sleep()时,主线程此时也会卡住(动画帧丢失):(版本1:publicvoidUpdateChannels(finalArrayListchannels){newAsyncTask,Object[],Void>(){@OverrideprotectedVoiddoInBackground(ArrayList...arrayLists){for(Channelchannel:arrayLists[0]){Integerchid=newInteger(channel.arfcn);ChannelRectchannelR

android - android中FutureTask和AsyncTask的区别

我想知道android中FutureTask和AsyncTask的区别。按照我的思路我们可以在FutureTask中得到当前的情况。使用ExecutorService我们可以创建一个并行进程池。我们可以使用AsyncTask实现相同的属性。我想知道什么情况下用AsyncTask,什么时候用FutureTask。我问了一个问题here但没有得到任何回应。现在我想我应该改变获取网络服务数据的方式。所以我认为我应该使用FutureTask因为它们有类似isDone()的功能并取消。请有人指导我从网络服务检索数据的更好方法。因为我的textView设置的适配器太慢了。或者只是我需要一种方法来取

android - 我应该在 AsyncTask 中使用 Wea​​kReference<Context> 还是 Application Context?

我有点进退两难,希望大家能帮帮我。如你所见,我有一个AsyncTask我在其中保存了一些代码Bitmap将对象作为.jpg文件添加到图库中。在AsyncTask我也在使用Context,但据我所知,使用Activity的上下文在这个内部类中可能会导致内存泄漏,所以我将其更改为WeakReferenceweakContext;所以垃圾收集器可以收集它。但是通过使用Application我从传递的View中获得的上下文从构造函数我应该归档与弱上下文引用相同的效果那么在这种情况下使用哪个更好呢?publicclassViewToBitmap{privateViewview;privateWe

android - 从自定义 View 启动 AsyncTask 的最佳实践

产生一个耗时的计算线程是很常见的。稍后,我们需要用计算结果更新Activity或Fragment。一直以来,我都遵循以下准则。到目前为止,它对我来说效果很好。AsyncTask需要onPostExecuteUIFragment使用setRetainInstance(true)无UIfragment。使用setTargetFragment和getTargetFragment技术请引用https://stackoverflow.com/a/12303649/72437AsyncTask需要onPostExecuteUIActivity使用setRetainInstance(true)无UI

Android - 使用 AsyncTasks 的正确方法?

使用异步任务的正确方法是什么?假设用户输入一个Activity,asynctask启动,当asynctask运行时用户决定导航到另一个页面。anynctask会怎样?它会一直运行到完成吗?我是否负责以某种方式停止这个异步任务? 最佳答案 异步任务将继续运行。asynctask可能会终止,因为Android操作系统会在内存不足时尝试回收内存。如果您不关心异步任务可能无法完成,那么这可能无关紧要,但这是一种不好的做法。此外,根据您存储/处理结果的方式,当异步任务结束时,您可能会尝试编辑该Activity中不再存在的Activity/对象

android - 如何在不阻塞 Activity 的情况下在 AsyncTask 中创建 while(true)?

我创建了一个AsyncTask,我必须在我的AsyncTask上创建一个while(true)。如何在不阻塞的情况下在我的Activity类中处理按钮点击时执行这样的无限循环? 最佳答案 其他人怎么说没有中断条件的无限循环不是很好的用户体验。首先为您的AsyncTask获取一个实例:PostTaskpt=newPostTask(this);pt.execute();在你的doInBackground()中试试这个:while(!this.isCancelled()){//doyourjobhere}如果应用程序被用户关闭,Async

java - 在 Android 中编写许多 HTTP 请求的良好设计模式

在我的应用程序中,我有很多GET、POST、PUT请求。现在,我有一个单例类来保存我下载的数据,并且有许多扩展AsyncTask的内部类。在我的单例类中,我也有一些这样的接口(interface):/***Handlersfornotifyinglistenerswhendataisdownloaded**/publicinterfaceOnQuestionsLoadedListener{publicvoidonDataLoadComplete();publicvoidonDataLoadingError();}这种模式有什么问题吗(许多扩展AsyncTask的内部类)?每次HTTP调

android - 从 AsyncTask 举杯

我正在尝试从asynctask举杯toast,但我在正确设置参数时遇到了问题。我正在从onProgressUpdatetoast,所以我在UI线程上,我认为这是正确的。我认为上下文参数有问题,我应该将什么作为值传递?编辑:显示下面的代码@OverrideprotectedvoidonProgressUpdate(String...strings){Toasttoast=Toast.makeText(MainActivity.this,strings[0],Toast.LENGTH_LONG);toast.show();}MainActivity.this表示“在范围内无法访问类型Mai

android - AsyncTask.onPostExecute() 的参数与实例变量

处理我的AsyncTask我想知道为什么我应该使用onPostExecute()的参数,而我只能在我的中使用类级实例变量AsyncTask类在doInBackground()和onPostExecute()之间共享数据。这两种方法都有效,但是每种方法有优缺点吗?编辑:当我说“实例变量”时,我指的是AsyncTask扩展类中的私有(private)实例变量。当类消亡时,实例变量也会消亡。 最佳答案 嗯,它可能会降低内存泄漏的可能性,因为您没有在类级别持有对对象的引用,而只有那些AsyncTask方法。正如@nico_ekito提到的,