草庐IT

aSyncTask

全部标签

android - 我可以在 AsyncTask 中保留 ContentResolver 多长时间?

我正在尝试编写一个Activity,它为长时间运行的操作生成AsyncTask,并定期将状态更新发布回Activity。我想确保AsyncTask在屏幕旋转或OOM等其他破坏条件下正确存活。I'vereadthisthreadontheandroid-developerslist,这又是ledmetothisimplementation,这几乎是我所需要的。但是,我的AsyncTask的最后一步是从内容解析器中删除一些数据。不要跳过此步骤非常重要,因为数据很敏感,在正常情况下不应留在手机上。但是,ContentResolvers来自Contexts,在本例中为Activity,并且在A

android - 什么会导致 AsyncTask 不执行?

我试图解决的应用程序偶尔会出现故障。在进入应用程序时,主UI线程处理在某一时刻结束并将控制权传递给后台线程以检索一些数据。当数据被检索时,控制传递回主UI线程来处理它以显示。但是,在极少数情况下(99%的时间都有效),AsyncTask似乎无法调用,从而使应用程序永远处于不良静态状态,等待AsyncTask完成。这是Activity中的代码快照://methodcallfrommainUIthreadprivatevoidfetchSomeData(){Log.d("myTag","InfecthSomeData()");newReadFileAsyncTask().execute(t

Android AsyncTask 不调用 onPostExecute

当我调用我的AsyncTask时,doInBackground会运行,但之后永远不会调用onPostExecute。Eclipse没有提示@Override或AsyncTask中的任何参数,所以我不确定问题出在哪里。谁能告诉我问题出在哪里?调用异步任务:newAsyncDataFetcher(this).execute(productInfoUrls);productInfoUrls是一个url列表。异步任务:privatestaticclassAsyncDataFetcherextendsAsyncTask,Void,List>{Contextcontext;publicAsyncD

android - 如何在 AsyncTask 运行时禁用 Button? (安卓)

我正在尝试在执行下载任务时禁用按钮。我尝试过使用setEnabled、setVisibility和setClickable。我想我尝试了这些选项的所有组合。他们都在任务执行时禁用按钮单击事件,但事件仍在以某种方式注册,当我react按钮时,如果我在按钮被禁用时单击按钮,则会调用处理程序......即使它是看不见或“消失”!(不知道是不是叫handler,想引用onClick方法)。我还插入了一个计数器和一个日志来验证我上面所说的内容。代码如下所示。这段代码if(counter>1)return;是为了停止崩溃,但我想删除它,因为我想重新启用按钮,而不是永远禁用它。点击:publicvo

java - AsyncTask 中的 Volatile 和 Synchronized

在AsyncTask的内部实现中(在AndroidSDK中)here,sDefaultExecutor使用volatile关键字声明,并且SerialExecutor中的execute()方法使用synchronized声明关键字。现在因为AsyncTask只能从UI线程执行,而且如果我们执行AsyncTask的一个实例,我们不能执行相同的再次实例,除非前一个实例已完成执行。那么这里怎么会出现多线程的情况呢?为什么SerialExecutor有一个ArrayDeque?因为有一段时间我们只能有一个任务。如果我们创建一个新的AsyncTask实例,那么我们不会得到一个新的ArrayDeq

java - 使用 Service、AsyncTask 和 Thread 制作智能 Android Media Player 应用

首先:对不起,如果我有拼写错误。我来自巴拉圭,我正在使用Google翻译。这可能看起来有点傻,我是一个完美主义者,并且像任何优秀的开发人员和设计师一样,不希望我的项目中出现错误。我正在学习中,希望能和你一起学到很多东西我见过媒体播放器应用程序允许用户快速重复按下播放/停止按钮而不会终止应用程序,并且它仍然正常运行,所以我阅读了有关服务的信息,AsyncTask和Thread。不仅在后台播放声音,而且不会因UI错误而终止我的应用程序。我还有很多问题。我想知道我是否正在使用以下资源(foundonline),但我已经尝试过,当我多次按下播放/停止按钮或有时根本不播放歌曲时,应用程序就死了。

Android AsyncTask 启动另一个 AsyncTask

我目前正在AsyncTask的onPostExecute方法中执行类似的操作,其中NewTask不是当前正在执行的任务:privateclassOlderTaskextendsAsyncTask{//otherfunctions(notimportant)@OverrideprotectedvoidonPostExecute(Integerresult){newNewTask().execute(null,null);}}我想知道这是否是个坏主意。这样做会不会导致OlderTask的GC等待NewTask?使用这种方法还有其他可能的问题吗?如果这是一个问题,我该如何纠正它?

Android、AsyncTask、长时间运行的进程和方向更改

过去,方向更改和AsyncTask(以及其他长时间运行的后台任务)不能很好地相互配合。始终存在一个问题,即了解哪些任务(或线程)仍在新创建的Activity中运行(来自方向更改),以及当Activity未附加时任务结束时要做什么。即使使用Fragments和LoaderManager,这对我来说仍然是个问题。现在管理任意长时间运行的任务和方向变化的首选方法是什么?了解新创建的Activity中正在运行哪些任务。确保任务不会在未附加Activity时尝试传递它的信息。谢谢 最佳答案 在我的程序中我只是把android:configCh

android - 我的 AsyncTask 类中有其他线程。在执行以下方法之前,我如何等待它及其所有线程完成?

AsyncTask类启动了许多其他线程,因为我使用的是第三方库。我不确定库打开了多少个线程,但我想等待它们全部完成,然后再用它们获取的数据填充我的ListView。目前我正在休眠10000毫秒,但这不切实际,因为我不知道它有多大。这个问题的正确解决方案是什么?task=newmTask();task.execute(appsList);newThread(newRunnable(){publicvoidrun(){populateList();}}).start();}privateclassmTaskextendsAsyncTask,Void,Void>{ProgressDialog

android - fragment ,我什么时候 "active"?

我一直为此感到沮丧,我找不到好的答案,所以希望这里的人可以提供指导。我有一个非常广泛地使用AsyncTask的fragment。我经常被fragment调用getActivity()的错误所困扰,它返回null。我假设发生这些情况是因为fragment中的某些方法在附加Activity之前或分离之后被调用。在我的代码中处理这个问题的正确方法是什么?我不想让这个成语到处都是,Activityactivity=getActivity();if(activity!=null){//dosomething}查看Fragment的文档,我可以想出许多可能的钩子(Hook)来解决这个问题:isDe