Questions tagged «android-asynctask»

用于android.os.AsyncTask上的问题


4
AsyncTaskLoader与AsyncTask
由于Honeycomb和v4 Compatibility Library可以使用AsyncTaskLoader。据我了解,这些AsyncTaskLoader可以通过屏幕翻转等配置更改来生存。 是否建议使用AsyncTaskLoader代替AsyncTask?是否LoaderManager得到照片吗? 但是我还没有找到任何有关如何正确使用的好示例AsyncTaskLoader。该文档也未提供任何示例。谁能提供一些很好的例子。

5
多次执行AsyncTask
在我的活动中,我使用从AsyncTask扩展的类和作为该AsyncTask实例的参数。当我打电话时,mInstanceOfAT.execute("")一切都很好。但是,当我按下再次调用AsyncTask的更新按钮时,应用程序崩溃(以防网络作业无法正常工作)。然后出现原因,显示异常 无法执行任务:任务已经执行(一个任务只能执行一次) 我尝试为Asyctask实例调用cancel(true),但它也不起作用。到目前为止,唯一的解决方案是创建Asyntask的新实例。那是正确的方法吗? 谢谢。

7
Android-为AsyncTask设置超时?
我有一个AsyncTask要执行的类,该类从网站下载大量数据。 如果最终用户在使用时数据连接非常慢或参差不齐,我想AsyncTask在一段时间后超时。我的第一个方法是这样的: MyDownloader downloader = new MyDownloader(); downloader.execute(); Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { if ( downloader.getStatus() == AsyncTask.Status.RUNNING ) downloader.cancel(true); } }, 30000 ); 启动后 AsyncTask,一个新的处理程序被启动,将取消AsyncTask30秒后,如果它仍在运行。 这是一个好方法吗?还是内置一些AsyncTask更适合此目的的东西?

4
Android:如何将参数传递给AsyncTask的onPreExecute()?
我使用AsyncTask来加载作为内部类实现的操作。 在中onPreExecute(),显示一个加载对话框,然后将其再次隐藏在中onPostExecute()。但是对于某些加载操作,我事先知道它们将很快完成,因此我不想显示加载对话框。 我想通过一个我可以传递给它的布尔参数来表明这一点,onPreExecute()但是显然出于某种原因onPreExecute()它没有任何参数。 显而易见的解决方法可能是在我的AsyncTask或外部类中创建一个成员字段,在每次加载操作之前都必须设置该成员字段,但这似乎不是很优雅。有一个更好的方法吗?

4
AsyncTask线程永不消亡
我正在使用 AsyncTask s来获取数据,以响应用户按下按钮。这样可以很好地工作,并在获取数据时使接口保持响应,但是当我检查Eclipse调试器中发生的情况时,我发现每次AsyncTask创建新程序时(这很常见,因为它们只能使用一次) ),正在创建一个新线程,但从未终止。 结果是大量 AsyncTask线程就坐在那儿。我不确定这在实践中是否存在问题,但是我真的很想摆脱那些多余的线程。 如何杀死这些线程?

9
取消执行中的AsyncTask的理想方法
我正在使用的后台线程中运行远程音频文件获取和音频文件回放操作AsyncTask。甲Cancellable进度条示出了用于提取操作的运行时间。 我想AsyncTask在用户取消(反对)操作时取消/中止运行。处理这种情况的理想方法是什么?

11
无法解析主机“ <在此处插入URL>”没有与主机名关联的地址
我尝试按照本教程进行操作: 从Web获取数据 我尝试在最新的平板电脑平台Android 3.0上实现它,但是,出现此错误:“ 无法解析主机“ www.anddev.org”没有与主机名相关联的地址。 “ 您可以检出我只是用来证明文件存在的URL。 http://www.anddev.org/images/tut/basic/getdatafromtheweb/loadme.txt 我创建了一个私有类,并使用asynctask对其进行了扩展。这是代码: private class Downloader extends AsyncTask&lt;String,Void,String&gt;{ String myString = null; @Override protected String doInBackground(String... arg0) { try{ URL myURL = new URL("http://www.anddev.org/images/tut/basic/getdatafromtheweb/loadme.txt"); URLConnection ucon = myURL.openConnection(); InputStream is = ucon.getInputStream(); BufferedInputStream bis = new BufferedInputStream(is); ByteArrayBuffer baf = new ByteArrayBuffer(50); int …

3
Android AsyncTask线程限制?
我正在开发一个应用程序,每次用户登录系统时我都需要更新一些信息,我也在电话中使用数据库。对于所有这些操作(更新,从db检索数据等),我使用异步任务。到现在为止,我还不明白为什么不使用它们,但是最近我体验到,如果我执行一些操作,一些异步任务只会在执行前停止,而不会跳转到doInBackground。真是太奇怪了,不能像现在这样保留它,所以我开发了另一个简单的应用程序来检查问题所在。奇怪的是,当异步任务总数达到5个时,我会得到相同的行为,第6个异步任务在预执行时停止。 android在Activity / App上是否有asyncTasks的限制?还是只是一些错误,应该报告?有没有人遇到过同样的问题,也许找到了解决方法? 这是代码: 只需创建其中的5个线程即可在后台工作: private class LongAsync extends AsyncTask&lt;String, Void, String&gt; { @Override protected void onPreExecute() { Log.d("TestBug","onPreExecute"); isRunning = true; } @Override protected String doInBackground(String... params) { Log.d("TestBug","doInBackground"); while (isRunning) { } return null; } @Override protected void onPostExecute(String result) { Log.d("TestBug","onPostExecute"); } } 然后创建这个线程。它将输入preExecute并挂起(不会转到doInBackground)。 private class …

9
Android SDK AsyncTask doInBackground未运行(子类)
截至2012年2月15日,我还没有找到一个很好的解释,也没有找到不起作用的原因。最接近解决方案的是使用传统的Thread方法,但是为什么要包含一个(似乎)在Android SDK中不起作用的类? 就这样! 我有一个AsyncTask子类: // ParseListener had a callback which was called when an item was parsed in a // RSS-xml, but as stated further down it is not used at all right now. private class xmlAsync extends AsyncTask&lt;String, RSSItem, Void&gt; implements ParseListener 这样执行: xmlAsync xmlThread = new xmlAsync(); xmlThread.execute("http://www.nothing.com"); …

4
Android AsyncTask可长时间运行
引用此处找到的AsyncTask文档,它说: 理想情况下,应将AsyncTasks用于较短的操作(最多几秒钟)。如果需要使线程长时间运行,则强烈建议您使用java.util.concurrent pacakge提供的各种API,例如执行程序,ThreadPoolExecutor和FutureTask。 现在我的问题出现了:为什么?该doInBackground()函数运行在UI线程之外,因此如果在此处长时间运行该操作有何危害?

13
屏幕旋转期间如何处理AsyncTask?
我阅读了很多有关如何保存实例状态或如何处理在屏幕旋转期间被破坏的活动的文章。 似乎有很多可能性,但是我还没有弄清楚哪种方法最适合检索AsyncTask的结果。 我有一些AsyncTasks只是重新启动并调用isFinishing()活动的方法,如果活动完成,它们将不会更新任何内容。 问题是我有一个任务向可能失败或成功的Web服务发出请求,而重新启动该任务将给用户造成经济损失。 您将如何解决?可能的解决方案有哪些优点或缺点?

12
Android片段。在屏幕旋转或配置更改期间保留AsyncTask
我正在开发一个智能手机/平板电脑应用程序,仅使用一个APK,并根据屏幕大小加载所需的资源,最好的设计选择似乎是通过ACL使用片段。 到目前为止,此应用程序一直运行良好,仅基于活动。这是一个模拟类,它说明了我如何处理“活动”中的AsyncTasks和ProgressDialogs以便即使在屏幕旋转或通信过程中发生配置更改时也能正常工作的情况。 我不会更改清单以避免活动的重演,我有很多理由不愿意这样做,但主要是因为官方文档说不建议这样做,而且到目前为止,我已经设法不使用它了,所以请不要建议路线。 public class Login extends Activity { static ProgressDialog pd; AsyncTask&lt;String, Void, Boolean&gt; asyncLoginThread; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.login); //SETUP UI OBJECTS restoreAsyncTask(); } @Override public Object onRetainNonConfigurationInstance() { if (pd != null) pd.dismiss(); if (asyncLoginThread != null) return (asyncLoginThread); return super.onRetainNonConfigurationInstance(); } private void …

4
在AsyncTask中获取上下文
我正在尝试在名为Opciones的类的AsyncTask中获取上下文(该类是调用该任务的唯一类),但是我不知道该怎么做,我看到了一些类似这样的代码: protected void onPostExecute(Long result) { Toast.makeText(Opciones.this,"Subiendo la foto. ¡Tras ser moderada empezara a ser votada!: ", Toast.LENGTH_LONG).show(); } 但这对我不起作用,它说: "No enclosing instance of the type Opciones in scope"

6
如何将多个原始参数传递给AsyncTask?
有相关的问题,例如如何将2个参数传递给AsyncTask类?,但是我遇到了徒劳地尝试将多个基元作为参数传递给AsyncTask的困难,所以我想分享自己发现的内容。现有的问题和答案中没有体现出这种微妙之处,因此,我想帮助那些遇到与我相同的问题的人,并减轻他们的痛苦。 问题是这样的:我有多个原始参数(例如两个long),我想传递给要在后台执行的AsyncTask-如何完成?(我的回答...经过一段时间的努力...可以在下面找到。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.