草庐IT

asyncTasks

全部标签

android - AsyncTask 执行()或 executeOnExecutor()?

使用execute()有什么区别?和executeOnExecuter()?execute()怎么样?默认执行任务?(串行还是并行?)新的SDK>16应该使用什么?对任务使用并行执行(THREAD_POOL_EXECUTOR)而不是串行执行是否是一种好习惯,即使这对应用程序无关紧要,或者这取决于AsyncTask的数量s会被执行吗? 最佳答案 .execute()-此函数将任务安排在单个后台线程的队列中。表示如果你调用两个AsyncTask并使用.execute()方法调用它们,它们将在队列中执行(先执行后第二)。.executeO

Android AsyncTask 和 Mockito(或 PowreMockito)

我有一个从远程服务器检索json的配置管理器。然后它被解析为一个ConfigWrapper对象,该对象在提供的回调监听器中作为参数返回。所以在测试类中我调用:@Testpublicvoidinit_Configuration_With_Network_Load_JSON_From_Server_Return_To_Listener(){mockConnectivityCheck(true);...mManager.initConfiguration(mContext,eq(anyString()),mListener);verify(mListener,times(1)).onConf

android - 是什么让改造比 HttpUrlConnection + AsyncTask 更快?

以下blog比较了各种Android异步Http客户端的速度。谁能解释一下是什么让改造如此之快? 最佳答案 编辑:再次浏览博文后,单线程与多线程问题可能不正确。问题是他们没有分享他们的分析/基准测试的血淋淋的细节;那一组数字并不能提供太多的洞察力。他们说,“我们确定从API(网络)检索数据是瓶颈”,但他们并没有对此进行太多分解。他们是否将所有Volley和Retrofit请求设为单线程?他们是否尝试对他们的AsyncTask进行多线程处理,以便他们可以同类比较?他们没有具体说明。如果将响应解析为JSONObject会减慢您的应用程序

android - 从 AsyncTask 到 Activity 的消息

我正在尝试从服务中嵌入的异步任务向我的主要Activity发送消息。基本上,异步任务必须在输入时阻塞,它不能在主Activity线程中运行(阻塞已从下面的示例代码中删除)。但是当数据进来时,我需要将它发送到主要Activity。我发现下面发送的消息永远不会成功。如果答案是在异步任务中移动绑定(bind),您该怎么做?如果可能的话,指向示例代码会有很大帮助。publicclassInputService2extendsService{intbufferSize=1024;Processprocess;DataInputStreamos;TextViewinputView;byte[]bu

android - 多个 AsyncTasks 的串行执行

有谁知道如何轻松地在队列中安排对AsyncTask执行的多次调用,然后以串行方式执行它们?我希望被调用的异步任务在它完成之前等待,但似乎我无法完成此任务,即使我测试了当前正在执行的任务的状态。有什么解决办法吗?我已经看到在hiveAPI中有一个方法executeOnExecutor()和一个SERIAL_EXECUTOR,我猜它实现了我所描述的。但是,我不是为honeycomb开发的。谢谢! 最佳答案 您可以尝试IntentService。来自引用:IntentServiceisabaseclassforServicesthatha

android - 我的 AsyncTasks 都没有回调到 onPostExecute

当我全新安装我的应用程序时,我的AyncTask似乎都不起作用。不管是哪一个,它们都失败并显示消息“正在向死线程发送消息。”他们从事各种Activity,从事各种不同的工作,但都失败了。如果我在DDMS的线程查看器中查看线程,所有5个左右的AsynchTask线程似乎都处于空闲状态并等待工作。如果我强行关闭应用程序,然后重新启动它,它们都会开始工作。它们都在UI线程上启动。有什么想法吗? 最佳答案 这是由于Android框架中AsyncTask的一个错误。AsyncTask.java具有以下代码:privatestaticfinal

java - JNI 和取消 AsyncTask

我有一个AsyncTask,在doInBackground()中我调用了C函数,它会执行一段时间。当我通过调用cancel(true)取消我的AsyncTask时,它返回true-就像任务被终止一样,但是我仍然在“终止”后看到来自C代码的日志语句。对我来说,C函数似乎并没有真正终止。我的问题是-如何正确终止C函数的执行? 最佳答案 找到答案here.这是C版本:jclassthread=(*env)->FindClass(env,"java/lang/Thread");jmethodIDmCurThread=(*env)->GetS

java - 变量没有在 AsyncTask 的 doInBackground 方法中更新

我正在尝试使用以下代码获取result值,但它似乎永远不会更新。我正在检查名为startPosting()的类中的结果:publicclassPostDataThreadextendsAsyncTask{String[]data;Contextcontext;intresult=0;publicintstartPosting(inttype,Stringdata[],Contextc){this.data=data;this.context=c;this.execute();returnresult;}@OverrideprotectedVoiddoInBackground(Void.

android - 从 AsyncTask 获取返回的 JSON

所以我有这个扩展AsyncTask的加载器类。然后我执行newloader().execute();但我想使用我的加载程序类返回的JSONArray响应我该怎么做那?因为我在几个不同的地方需要它?或者我应该将我的代码移动到onPostExecute并从那里做所有事情吗?publicclassloaderextendsAsyncTask{ProgressDialogdialog;protectedvoidonPreExecute(){dialog=ProgressDialog.show(ChallengeList.this,"","Laddar...");dialog.setCancel

java - 如何在 HttpURLConnection 中添加 AsyncTask?

我正在建立一个服务器连接,我的问题是我需要在我的代码上放置一个AsyncTask,因为它在sdk版本10上不起作用。我不想使用StrictMode.ThreadPolicy。publicclassTestConnectionextendsActivity{@OverridepublicvoidonCreate(Bundlecbundle){super.onCreate(cbundle);ConnectivityManageraConnectivityManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SE