草庐IT

onPostExecution

全部标签

java - onPreExecute() 和 onPostExecute() 是在 UI 线程上执行还是在启动 AsyncTask 的线程上执行?

我已经在android中为简短的后台操作编写AsyncTask很长一段时间了,并且有一个非常基本的问题。如果我从一个单独的线程而不是主UI线程启动AsyncTask,我的onPreExecute()和onPostExecute方法是否仍会在UI线程或我启动AsyncTask的线程。我很好奇,因为当我从其他线程启动它时,我无法在onPreExecute()方法中显示弹出窗口。编辑2Itriedwritingthissimpleactivitytotry:publicclassMainActivityextendsAppCompatActivity{@Overrideprotectedvo

android - 从 AsyncTask 类的 onPostExecute 方法返回值

好的,现在我有了ClassA,其中包含一些微调器,这些值将由ClassB填充,它扩展了AsnycTask来获取微调器来自Web服务的值。在B类中,我设法检索值,显示在Toast中。现在的问题是如何将这些微调器值传递回A类?我试过了CanOnPostExcecutemethodinAsyncTaskRETURNvalues?通过将ClassA传递给ClassB并将值存储在ClassA的公共(public)变量中,如下所示@OverrideprotectedvoidonPostExecute(Stringresult){classA.classAvariable=result;}但是,每当

android - onPostExecute() 的 "runs on UI thread"到底是什么意思?

考虑在Activity中启动的AsyncTask。如果Activity被暂停或销毁会怎样?onPostExecute()会运行吗?如果是,将使用什么UI线程?只是想知道。非常感谢。 最佳答案 UI线程在您的应用程序的可见生命周期内可用,可能跨越多个Activity的组合。您在View中所做的任何更改都必须在UI线程上执行,AsyncTask的onPostExecute通过在UI线程中执行内部指令来反射(reflect)相同的逻辑。您可以在自己的Thread中使用runOnUiThread来更改View。但是因为AsyncTask有o

Android:在 onPostExecute() 中得到 CalledFromWrongThreadException - 怎么可能?

我有一个使用ACRA的应用已经投入生产了几周,在今天报告了一个奇怪的错误之前,我的错误为零。我有:android.view.ViewRootImpl$CalledFromWrongThreadException:Onlytheoriginalthreadthatcreatedaviewhierarchycantouchitsviews.来自堆栈跟踪中的此方法(已追溯):atmy.app.CountdownFragment$1.voidonPostExecute(java.lang.Object)(SourceFile:1)这是相关的源代码fragment:privatevoidaddI

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

java - 完成 AsyncTask 后未调用 onPostExecute

出于某种原因我的onPostExecute()在我的AsyncTask之后不调用完成。我的类(class)声明:publicclasssetWallpaperForegroundextendsAsyncTask我的onPostExecute():protectedvoidonPostExecute(Booleanresult)一切正常,我的doInBackground()成功完成并返回一个boolean值,然后它就完成了。谢谢 最佳答案 您是否使用execute()方法启动任务?如果您只调用doInBackground,onPost

java - 在 onPostExecute 中的 notify() 之前没有被线程锁定的对象

我尝试在onPostExecute中通知适配器主类的ListView,但我收到错误:java.lang.IllegalMonitorStateException:objectnotlockedbythreadbeforenotify()@OverrideprotectedvoidonPostExecute(Stringresult){popularfragment.adapter.notifyDataSetChanged();recentfragment.adapter.notifyDataSetChanged();} 最佳答案 .

java - 无法覆盖 AsyncTask 类中的 onPostExecute() 方法或使其触发

我在运行AsyncTask时无法调用onPostExecute()方法。当我尝试设置扩展AsyncTask的类时,其中onPostExecute()被覆盖,我收到以下构建错误。'ThemethodonPostExecute()oftypeAsyncTaskExampleActivitymustoverrideorimplementasupertypemethod'我已尝试摆脱@Override注释。这消除了构建错误,但该方法仍然没有执行。如果有人能指出我忽略了什么,我将不胜感激。代码:packagecom.asynctaskexample;importandroid.os.AsyncT

android - 由于 AsyncTask 是一个单独的类,如何将 OnPostExecute() 的结果获取到主要 Activity ?

我有这两个类(class)。我的主要Activity和扩展AsyncTask的Activity,现在在我的主要Activity中,我需要从AsyncTask中的OnPostExecute()获取结果>。如何将结果传递或获取到我的主Activity?这里是示例代码。我的主要Activity。publicclassMainActivityextendsActivity{AasyncTaskasyncTask=newAasyncTask();@OverridepublicvoidonCreate(BundleaBundle){super.onCreate(aBundle);//Calling