草庐IT

asynctasks

全部标签

android - AsyncTask 返回值

我的android应用程序连接到我的网站以检索和上传信息,因此我使用AsyncTask线程。在一个实例中,我需要我的线程向我的主线程返回一个真值或假值。有没有办法从AsyncTask执行函数中获取这个返回值?当我执行以下操作时:Toast.makeText(Locate.this,"Testing:"+locationUpdate.execute(location),Toast.LENGTH_LONG).show();我只是得到了很多胡言乱语。我认为我需要一种暂停主线程直到第二个线程完成的方法。第二个线程调用主线程中的一个函数来设置我的返回值。所以当第二个线程完成时,主线程可以取消暂停

android - AsyncTask,它必须承受这样的性能损失吗……?

我正在开发一个小型应用程序,它可以读取特定的html页面,重新格式化它们,然后在WebView中显示它们。如果我在GUI线程中运行我的代码,与简单地让WebView显示原始html页面相比,性能损失几乎可以忽略不计。但是如果我是个好child并且按照我被告知的那样做,我应该使用AsyncTask在后台运行代码,以免在这3-5秒内卡住GUI,我的代码完成了它的工作.问题是......如果我这样做,代码需要超过10倍的时间才能完成。显示一个页面需要60多秒,这是NotAcceptable。跟踪问题,TraceView显示我的AsyncTask(默认优先级)以大约10毫秒的block运行,大

android - 并行执行多个 AsyncTask

我正在使用AndroidSDK4.0.3API15,我想并行运行多个AsyncTask。我从网络服务器获取我的数据并实时动画(10fps)。但根据用户操作,我还需要向Web服务器发送一些数据。发生这种情况时,我的动画会暂停一小段时间(发送数据进入队列并获取数据等待它完成),因此我无法捕捉实时。这个answer很好解释,但我无法让它工作。因此,任何帮助将不胜感激。我想我需要使用这个功能来实现:AsyncTask.executeOnExecutor(Executorexec,Params...params)但我无法将执行器作为参数传递,也无法实例化执行器。这是我的AsyncTask类:pu

android - 从另一个 AsyncTask 调用 AsyncTask

在我的AsyncTask的某个时刻,在完成一些验证之后,我需要派生另一个线程来做一些其他工作。所以我现在想要两个后台线程,每个都做自己的事情(每个执行大约2-3秒)。我们的想法是最大限度地提高Atrix等双核处理器的性能。创建另一个异步任务并从第一个执行它是否可以接受?任何人都可以提出更好的方法吗?谢谢!编辑:我想知道第二个任务中的publishProgress()甚至会做什么......因为它不是从Activity启动的? 最佳答案 Isitacceptabletocreateanotherasynctask&executeitf

android - 在 Fragment 中选择 AsyncTaskLoader 和 AsyncTask 的指南

看LoaderCustomSupport(使用AsyncTaskLoader)和FragmentRetainInstanceSupport(使用Thread,几乎相当于AsyncTask)这两个例子有以下相似之处。加载数据时都不会阻塞UI线程当用户执行屏幕旋转等配置更改时,数据获取线程不会被破坏。当数据获取线程完成数据获取后,它可以更新到正确的FragmentUI但是,还是有区别的。AsyncTaskLoader似乎没有简单的方法可以将中间进度更新到进度条对话框异步任务对此不确定。但Android文档似乎推荐AsyncTaskLoader用于异步数据加载并将最终结果更新到UI?是否有任

Android AsyncTask 上下文行为

我一直在使用Android中的AsyncTasks,我正在处理一个问题。举一个简单的例子,一个带有一个AsyncTask的Activity。后台的任务并没有做任何壮观的事情,它只是休眠了8秒。在onPostExecute()方法中的AsyncTask结束时,我只是将按钮可见性状态设置为View.VISIBLE,只是为了验证我的结果。现在,这非常有效,直到用户决定在AsyncTask工作时(在8秒sleep窗口内)改变他的手机方向。我了解AndroidActivity生命周期,并且我知道该Activity会被销毁并重新创建。这就是问题所在。AsyncTask指的是一个按钮,并且显然包含对

android - AsyncTask doInBackground 不运行

这个问题在这里已经有了答案:AndroidSDKAsyncTaskdoInBackgroundnotrunning(subclass)(9个回答)关闭8年前.我遇到了AsyncTask类的问题。创建4或5个任务后,我的任务似乎停止工作。我有2项Activity。MainActivity只包含一个按钮,用于启动名为ImageActivity的第二个Activity。ImageActivity非常简单。它有一个设置布局的onCreate,然后它启动一个从Internet加载图像的新AsyncTask。这在前几次工作正常。但它突然停止工作。每次都会运行onPreExecute方法,但不会运行

android - 示例 : Android bi-directional network socket using AsyncTask

我为Android找到的大多数网络套接字示例都是单向的。我需要一个双向数据流的解决方案。我最终了解了AsyncTask。此示例显示如何从套接字获取数据并将数据发送回它。由于接收数据的套接字的阻塞特性,该阻塞需要在UI线程以外的线程中运行。为了举例,这段代码连接到一个网络服务器。按下“StartAsyncTask”按钮将打开套接字。一旦套接字打开,Web服务器就会等待请求。按下“发送消息”按钮将向服务器发送请求。来自服务器的任何响应都将显示在TextView中。在http的情况下,一旦发送了所有数据,Web服务器将与客户端断开连接。对于其他TCP数据流,连接会一直保持到一侧断开。截图:A

android - 暂停时如何处理 AsyncTask onPostExecute 以避免 IllegalStateException

感谢关于轮换更改的AsyncTask的大量帖子。使用兼容性库并尝试在onPostExecute中关闭DialogFragment时遇到以下问题。我有一个触发AsyncTask的fragment,它显示进度DialogFragment,然后在onPostExecute中关闭对话框,然后可能抛出另一个DialogFragment.如果在显示进度对话框时我将应用程序置于后台,我的fragment会得到以下信息:1)onPause2)onSaveInstanceState3)onPostExecute在其中我尝试关闭并调用一个对话框。我得到一个IllegalStateException,因为我

android - AsyncTask onPostExecute 永远不会被调用

我不确定我做错了什么,但onPostExecute永远不会被调用。创建了一个名为BaseActivity.java的基类从我原来的Activity中我扩展了这个类。在BaseActivity中放置PostToOpenFeint类从我正在做的主要Activity的UI线程中调用它:newPostToOpenFeint.execute();onPreExecute()、doInBackground(..)被触发,但由于某种原因,onPostExecute永远不会被调用。提前感谢您!戴夫privateclassPostToOpenFeintextendsAsyncTask{/**(non-J