草庐IT

asyncTasks

全部标签

android - AsyncTask、Fragments、Views 和 Backstacks

我一直在使用这种模式。这是一个非常人为的AsyncTask+进度指示器示例:newAsyncTask(){WeakReferenceweakFragment=newWeakReference(MyFragment.this);@OverrideprotectedvoidonPreExecute(){Fragmentfragment=weakFragment.get();if(fragment!=null)fragment.getView().findViewById(R.id.progress).setVisibility(View.VISIBLE);}@Overrideprotect

Android AsyncTask 在 doInBackground 返回多个值用于 onPostExecute

我最近刚刚阅读并测试了AsyncTask,现在我需要知道如何在onPostExecute部分传递多个值。好吧,我使用JSON解析器从Web获取值,但我从JSON获取的值是多个值,我将这些值传递到一个数组中,该数组由获取的每个数据的列标题分隔,这是我应该返回它的部分供onPostExecute使用。但据我所知,每次运行只能使用一次返回(如果我错了请纠正我)。到目前为止,这是我的代码:publicclassGetInfoextendsAsyncTask>{privatefinalStringTAG=null;InputStreamis=null;StringBuildersb=null;L

android - 为什么要将 Retrofit 与 AsyncTask 一起使用?

几天前,当我试图学习如何使用Retrofit时,我发现一些教程说在某些情况下,我们应该将ASyncTask与Retrofit一起使用。这让我感到困惑,因为我的印象是我们使用Retrofit来避免使用ASyncTask。现在我已经很好地理解了Retrofit(足以使用它并将我所有的ASyncTask代码更改为Retrofit),我仍然没有找到一个好的借口或理由将ASyncTask与Retrofit一起使用。还是我在这里遗漏了什么?顺便说一句,我至少看到了3个不同的教程提到了将Retrofit与ASyncTask结合使用,但我再也找不到了。我只能找到1,http://karanbalkar

android - 如何在 android 中使 AsyncTask 模块化

我是Android开发的新手。我在一个应用程序中工作,我需要对api进行大量异步调用。对于每个API调用,我都必须一遍又一遍地编写外观相似的AsyncTask类。那么,有没有办法让这些异步调用模块化呢? 最佳答案 是的,可以将Listener和AsyncTask与参数化构造函数一起使用检查一下创建一个界面publicinterfaceOnTaskCompletListerner{voidoncompleteListerner(Stringname);}创建一个AsyncTask类如下publicclassAsyncTaskModul

java - 通过运行 AsyncTask 处理方向变化

这个问题在这里已经有了答案:Bestpractice:AsyncTaskduringorientationchange(9个回答)关闭7年前。用例:用户启动将加载验证码的应用程序。用户填写验证码并尝试下载一些信息。问题:如果用户在下载时旋转设备,Activity将被销毁。在执行结束时,AsyncTask尝试更新已销毁的Activity,结果是一个“View未附加到窗口管理器”。“错误”的解决方案:我可以用android:configChanges="orientation|keyboardHidden|screenSize"来掩盖这个问题,但是布局不会更新为横向。我在问什么:是否可以更

android - 是否可以同步 Android AsyncTask doInBackground 以序列化任务执行?

是否可以使AsyncTask.doInBackground同步-或者以其他方式实现相同的结果?classSynchronizedTaskextendsAsyncTask{@OverrideprotectedsynchronizedIntegerdoInBackground(Object...params){//dosomethingthatneedstobecompleted//beforeanotherdoInBackgroundcanbecalled}}在我的例子中,任何AsyncTask.execute()都可以在前一个完成之前启动,但我只需要在前一个完成之后执行doInBack

java - onPreExecute() 和 onPostExecute() 是在 UI 线程上执行还是在启动 AsyncTask 的线程上执行?

我已经在android中为简短的后台操作编写AsyncTask很长一段时间了,并且有一个非常基本的问题。如果我从一个单独的线程而不是主UI线程启动AsyncTask,我的onPreExecute()和onPostExecute方法是否仍会在UI线程或我启动AsyncTask的线程。我很好奇,因为当我从其他线程启动它时,我无法在onPreExecute()方法中显示弹出窗口。编辑2Itriedwritingthissimpleactivitytotry:publicclassMainActivityextendsAppCompatActivity{@Overrideprotectedvo

Android:将 AsyncTask 回调到 Fragment(不是 Activity)

我正在尝试在AsyncTask和Fragment之间实现回调,但找不到正确的信息来实现它。问题是所有回调实现都在Activity和异步任务之间,但我需要在fragment和异步任务之间。有人可以给我一个小的工作示例,说明如何在没有Activity的情况下实现它。我的操作结构:fragment调用DialogFragment->选择一些东西并将服务器请求发送到异步任务->异步任务处理所有内容并更新View和一些变量。我的主要问题是我在onCreate中只调用了一次prepareData(),当我在其他fragment之间行走并返回时,我看到了旧数据。也就是说在asynctask的onPo

android - 适配器的内容已更改但 ListView 未收到通知 - 使用 AsyncTask

我正在使用AsyncTask来设置我的项目和东西,在postExecute中我调用一个同步方法来执行此操作mAllResultsAdapter.setItems(mAllResultsItem);mAllResultsAdapter.notifyDataSetChanged();mListView.invalidate();mListView.requestLayout();大多数时候,如果我下载新数据并更新我的ListView/适配器,它就可以正常工作,而且非常好。但有时它会以某种方式崩溃,任何人都可以帮助我解决这个问题。这是我的崩溃日志。03-1914:15:02.170:E/An

android - 取消后未调用 AsyncTask.onCancelled()(真)

在2.3.6设备上运行的AndroidSDKv15。我遇到一个问题,当我在doInBackground()中调用cancel()时,仍然调用onPostExecute()打电话。这是我的代码:@OverridepublicStringdoInBackground(String...params){try{returnsomeMethod();}catch(Exceptione){cancel(true);}returnnull;}publicStringsomeMethod()throwsException{...}我强制someMethod()抛出一个异常来测试它,而不是调用onCa