草庐IT

AsyncTasks

全部标签

java - 获取Android应用程序中所有已执行和当前正在运行的AsyncTasks

我有许多AsyncTask实例正在从服务器下载一些不同的内容。他们在执行者上运行:finalGetStationsTaskgetStationsTask=newGetStationsTask();getStationsTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,URL_STATIONS);目前我有3个AsyncTask的子类,但这个数字不会保持不变。我还对由于不同原因未完成的任务实现某种重试,如果至少有一个任务未正确完成(未收到数据),我想从头开始下载所有内容://mHandler=newHandler();//anins

java - 如何在 android 中创建可重用的 AsyncTasks?

我在android中有一个应用程序,我正在其中访问几个RESTweb服务。我正在使用AsyncTasks来访问这些并在之后做一些UI更改。我想在不同的Activity中使用其中一些电话。然而,根据我读过的所有教程,AsyncTasks被用作Activity中的内部类(这是有道理的,因为它们正在改变那些Activity中的View)。但是如何解决那些AsyncTasks的可重用性呢?甚至,假设我想在位置更改时执行一些AsyncTasks调用。我有一个LocationListener(它是一个外部类),我想在onLocationChange()方法内部进行API调用。但是我无法访问我想要的

java - DRY:AsyncTasks 的案例

我正在开发一个Android应用程序,它有很多不同的网络服务请求。每个请求都以这种方式在AsyncTask的子类中完成:(newAsyncTask(){@OverrideprotectedObject1doInBackground(String...params){//networkrequestandparsingtoObject1Object1obj=newObject1();obj1=Parser.parseObject1(httpClient.execute(...));returnobj1;}@OverrideprotectedObject1onPostExecute(Obj

Android - 使用 AsyncTasks 的正确方法?

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

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

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

java - 链接 AsyncTasks 是否被认为是不好的做法?

这个问题在这里已经有了答案:AndroidAsyncTask-Orderofexecution(6个答案)关闭7年前。我正在编写一个执行以下操作的应用:解析网页并从中提取图片网址将它们解码为Bitmap并在ImageView中显示它们我不希望这些在UI线程上运行,显然第二点不能在第一点完成之前执行。我可以链接AsyncTasks来实现这个吗?我的意思是从第一个的onPostExecute()方法开始第二个。这被认为是不好的做法吗?如果是这样,我应该怎么做?(这是一个理论问题,我不是要代码)

java - 算法优化 - 并行 AsyncTasks 还是线程?

我目前有一个AsyncTask,它目前使用OpenCV使用冒泡排序技术比较图像。比如,我必须将400图像相互比较。这意味着400*401/2=80,200比较。假设一次比较需要1秒。所以,那是80,200秒,大约是22.27小时,长得离谱。因此,我开发了这种类型的算法:它将400图像分成5组。因此每组中有80个图像。算法的第一部分是在组成员中比较自己的图像。因此,image1会将自己与image2-80进行比较,这意味着有79次比较。image2将有78比较等等。这使得3,160比较。或者3,160秒。同样,image81会将自己与image82-160进行比较,依此类推。所以所有“组

android - onPause 之后 AsyncTasks 会发生什么?

我有一个AsyncTask在我进入下一个Activity之前执行。在这个AsyncTask中,我有一个MediaPlayer。protectedvoidonPause(){stopProgress();Log.i(TAG,"onPAUSE");try{}finally{//Ifweallocatedaplayer,thencleanupafteritif(player!=null){player.reset();player.release();player=null;Log.d(TAG,"endofplayercleanup");}}super.onPause();}使用场景:点击A

android - 性能比较 : AsyncTasks vs Threads

在我的应用中,我必须调用一个方法来完成一些繁重的工作(我能感觉到设备滞后)。为了避免这种情况,我创建了一个AsyncTask,它工作得很好。我使用Thread实现了同样的事情,在这里,它也没有出现任何问题并且工作正常。现在我的问题是哪个性能更好-AsyncTask或Thread。我知道AsyncTask使用线程池来执行后台任务,但在我的例子中它只会被调用一次。所以我认为这不会造成任何问题。有人可以解释一下吗?我应该使用哪一个以获得更好的性能?注意:两者都在我的Activity中被调用,例如从UI线程。 最佳答案 Cansomeone

android - 我可以在单个进程应用程序中运行多少个 AsyncTasks

我正在使用asyncTasks来加载带有图像的列表元素(只是遵循了android的有效加载位图教程)在DDMS中,我最多可以看到5个AsyncTasks正在运行现在我还添加了另一个AsyncTask,它使用MediaCodec类执行一些解码。现在在DDMS中,我仍然看到5个AsyncTasks,并且我的图像加载ynctask或解码异步任务执行,而不是两者都执行。当解码运行时,如果我滚动列表,元素的图像不会更新相反,当我通过调用它的执行方法启动新的解码异步任务时,解码不会开始,但如果我现在滚动ListView,图像就会更新。那么AsyncTask是有限制的吗??即使在listAdapte