草庐IT

asynctasks

全部标签

android - 检查所有 AsyncTask 是否已完成

我有3个AsyncTasks和1个ProgressBar。我希望当任何任务执行时,进度条是可见的,当所有任务完成时,进度条是不可见的。在Java中,有ExecutorService::isTerminated来检查所有可运行对象是否已完成但Android没有。更新:3个任务同时执行。图。 最佳答案 漂亮的图形。但恐怕没有内置机制。你必须自己实现它。您可以使用的解决方案很少-保留对所有3个任务的引用。当任务完成时检查其他两个任务是否也完成,如果是则关闭进度对话框,如果没有则等待其他任务完成并再次检查。确保在完成后释放引用。如果您不想在

android - 从 IntentService 或 AsyncTask 调用 REST API?

想象一个典型的场景,一个Activity打开,需要调用一个RESTHTTPAPI来获取一些内容,并且一旦收到更新UI。显然API调用需要在单独的线程上进行,但应该使用AsyncTask、IntentService还是其他方法来完成,为什么? 最佳答案 我会推荐IntentService和ResultReceiver的组合,如thispost中所述。还可以查看实现此模型的Googleiosched。2010版本展示了如何使用onRetainNonConfigurationInstance、getLastNonConfiguration

android - 如何在 Android 中进行后台工作时使用 AsyncTask 显示 ProgressDialog?

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:UpdatingprogressdialoginActivityfromAsyncTask我正在开发我的第一个Android应用程序,我需要在后台任务(在本例中只是服务器上的http调用)发生时显示ProgressDialog。我对此进行了一些研究,并且已经检查了与该主题相关的其他线程。http://developer.android.com/reference/android/os/AsyncTask.htmlAndroidshowProgressDialoguntilactivityUIfinishedlo

android - 我可以将不同类型的参数传递给 Android 中的 AsyncTask 吗?

我想实现一个通用的线程保存类,它采用ImageView的RessourceId和存储所需图像文件的Url(http)。它将下载图像并填充UiThread中ImageView的src。我以为AsyncTask对我来说是最好的。但是我注意到我只能将一种类型的参数传递给doInBackground()方法。就像一个URL数组。真的吗?你会建议我什么? 最佳答案 您可以将参数作为对象传递newMyTask().execute(url,str,context);publicclassMyTaskextendsAsyncTask{@Overri

Android - AsyncTask 未执行

我知道这个标题已经有很多问题,但我仍然没有找到适合我的案例的解决方案。我有以下代码从在线数据库中获取用户数据。如标题所述,问题是AsyncTask没有启动。这是我的代码:protectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);getData();//retrieves"friends"datafromdatabaseFloatingActionButtonbtn3=(FloatingActionButton)findViewById(R.id.button_add_new_fr

android - 运行并行 AsyncTask

我的应用程序中有一个SplashActivity,它在我启动应用程序时使用AsyncTask执行一些操作。我还创建了另一个从服务器下载数据的AsyncTask。现在,在我关闭应用程序后,AsyncTask仍在下载数据。但是当我再次启动我的应用程序时,我的SplashActivity的AsyncTask不会执行其后台(doInBackground函数),直到我的下载器AsyncTask完成,并且我的应用程序被挂起。所以我的问题是我们不能并行运行两个AsyncTask吗?两个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非常优越,原