草庐IT

AsyncTasks

全部标签

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

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

java - 为什么我的服务的 AsyncTask 会阻止来自主 Activity 的 AsyncTasks?

我正在尝试编写一个简单的服务,它每隔几秒就会执行一次操作。但是,当我在尝试在主Activity中运行其他AsyncTasks的同时运行该服务时,我注意到其他AsyncTasks卡在了onPreExecute。当我禁用该服务时,一切都按预期进行。Service的AsynTask阻塞其他AsyncTask是否有原因?服务publicclassSVC_SyncDataextendsService{privatefinalStringTAG="SVC_SyncData";privateAT_SyncDatam_SyncPoll=null;publicstaticbooleanisRunning

android - Android Spinner 上的多个 AsyncTasks 问题

我遇到了一些错误。我知道问题出在哪里,但我不知道如何解决。我有4个微调器。每个微调器都与一个异步任务相关。简而言之,当我在spinner1上选择一个项目时,执行填充spinner2的第二个异步任务(所选项目作为参数添加到第二个异步任务)以这种方式继续。但是在第一个异步任务结束之前,spinner2无法填充。在这种情况下,我遇到了错误。如何解决?如何让第一个任务完成后,第二个任务开始工作?这是代码;第一个任务publicclassilceDoldurextendsAsyncTask{@OverrideprotectedString[]doInBackground(String[]...p

android - 两个不同的 AsyncTasks 同时执行

我有两个完全不同的AsyncTask实现,比方说AT1和AT2。AT1先被执行,然后AT2被执行。AT1在doInBackground中等待,直到AT2通过每500毫秒轮询一次此数据来完成其任务。但这永远不会发生。所以我基本上想要的是:但似乎发生的是这样的:除了AT1永远不会完成,AT2永远不会开始。有没有办法强制这两个AsyncTask在两个单独的线程上执行,或者是否有其他解决方案?不可能先启动AT2,然后再执行AT1。编辑澄清一下:AT1在用户打开特定屏幕时执行,并且需要根据位置为该屏幕下载数据。AT2在位置更改时执行,当发生这种情况时,会进行一些无法在UI线程上完成的计算。当AT

android - Flurry 应该用在 Services 和 AsyncTasks 中?

我正在尝试使用FlurryAnalitcs在我的应用程序中。阅读sdk文档后,我在应用程序的每个Activity中执行了以下代码:@OverrideprotectedvoidonStart(){FlurryAgent.onStartSession(this,"xxxxxxxxxxxxxxxxx");super.onStart();}@OverridepublicvoidonStop(){super.onStop();FlurryAgent.onEndSession(this);}我怀疑我的应用程序中有很多AsyncTask和一些IntentServices,在文档中他们说:Insert

java - 如何定期调用 asyncTasks

我有两个AsyncTasks做网络操作。我想定期给他们打电话(比如一分钟后)。我怎么做?我不认为我可以在UI线程上完成它。我需要创建一个新线程吗?是否可以在没有AlarmManager/Service的情况下实现它?基本上我想在一分钟后定期执行这两个语句。newUploadAsyncTask().execute();newDownloadAsyncTask().execute();谢谢 最佳答案 只需使用一个计时器。finalHandlerhandler=newHandler();Timertimer=newTimer();Time

android - 是否有同时执行的 AsyncTasks 的限制?

这应该有一个简单的答案,但我找不到。由于我仍然是一个android假人,所以我来这里是想问问你们。我一直在制作这个在启动时执行10个AsyncTasks的项目。每个任务包含3个URL,这些URL在那里收集数据并且在应用程序中不做任何重要的事情(目前)。我还有10个TextView,用于跟踪AsyncTasks的进度。当一个任务开始时,适当的TextView被放在“开始”当任务正在进行时,它将适当的TextView设置为“正在下载”当任务完成时,它会将相应的TextView设置为“已完成”这是我对AsyncTask的观察和质疑。当我启动应用程序时,我注意到5个TextView被切换到“正

android - 从多个 AsyncTasks 获取结果

您好,感谢您的帮助。我有一个方法调用一个AsyncTask来从网络中检索一些数据。方法按顺序调用多次,因此启动多个AsyncTasks。每次启动method时,我都需要从相关的AsyncTask(而不是从之前或之后调用的其他AsyncTask)取回正确的结果。非常感谢任何帮助。编辑编辑编辑编辑添加了其余代码。请注意:整个过程在服务中运行。publicstaticclassUpdateServiceextendsService{@OverridepublicintonStartCommand(Intentintent,intflags,intstartId){int[]appWidget

android - 如何在一个 Activity 中运行两个 AsyncTasks?

我有两个Activitys(mainActivity&downloadActivity)我有2AsyncTask在downloadActivity在downloadActivity首先它执行getFileAsyncTask用于读取JSON文件以添加一些图像并创建ListView从图片中,如果用户点击图片,downloadAsyncTask被调用,它开始从互联网上下载一些东西。我的问题在这里:当第二个AsyncTask正在运行我回到mainActivity再次回到downloadActivity第一个AsyncTask直到downloadAsyncTask才被调用完成。publiccla

android - 覆盖 AsyncTasks 构造函数时我应该调用 super() 吗?

在我在网上看到的许多示例中,AsyncTask被扩展,构造函数被覆盖,并且没有调用super()。例如,在thisanswer中通过hackbod:staticclassWorkerextendsAsyncTask{MyActivitymActivity;Worker(MyActivityactivity){mActivity=activity;}[...]}新构造函数不会回调父构造函数。thissampleproject中有类似的代码由CommonsWare提供。那么这是正确的吗?或者真的应该调用super()吗? 最佳答案 如果