jjzjj

onPostExecute

全部标签

android - 在 onPostExecute 中启动一个 Activity

当AsyncTask在onPostExecute方法上完成时尝试启动Intent时我遇到了问题。我第一次调用AsyncTask是在初始屏幕Activity中。publicclassSplashScreenextendsActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_splash);startJsonGet();}publicvoidstartJsonGet(){Json

android - AsyncTask 取消自身仍然调用 onPostExecute()

从doInBackground()中调用AsyncTask.cancel(true)后,Android不会调用onCancelled(),而是调用onPostExecute()。但是asperthedocumentation:CallingthismethodwillresultinonCancelled(Object)beinginvokedontheUIthreadafterdoInBackground(Object[])returns.CallingthismethodguaranteesthatonPostExecute(Object)isneverinvoked.这是Andr

Android AsyncTask onPostExecute 关闭主 ui 线程

我在使用AsyncTask和onPostExecute时遇到问题。我发现onPostExecute在与主ui线程不同的线程上执行,这导致在我修改任何View时发生CalledFromWrongThreadException。我输入了一些日志记录以查看onPreExecute、doInBackground和onPostExecute正在运行的线程。我会看到这样的结果...onPreExecuteThreadId:1doInBackgroundThreadId:25onPostExecuteThreadId:18我相信主ui线程id是1,我希望onPre和onPost都在线程1上执行。我确

android - 用于更新小部件的 AsyncTask - 如何访问 onPostExecute() 中的 TextView ?

以下情况:我有一个appwidget,它从url轮询数据并使用parsedhtml更新widget。在pre-honeycomb设备上,这可以通过service完成,无需使用单独的线程。现在,在ICS上,这已经改变,ASyncThread是必需的。要访问Widget-Updater-Service中的TextViews,我使用RemoteViewsremoteViews=newRemoteViews(getApplicationContext().getPackageName(),R.layout.widget_layout);remoteViews.setTextViewText(R

android - 捕获 AsyncTask 的异常。需要思考

我想在doInBackground中捕获线程的异常并在onPostExcecute中打印错误消息。问题是我在onPostExecute中没有Throwable对象。如何在非UI线程中捕获异常并在UI线程中打印错误消息?publicclassTestTaskextendsAsyncTask>{@OverrideprotectedListdoInBackground(finalVoid...params){try{...returnlistOfString;}catch(SomeCustomExceptione){...returnnull;}}@Overrideprotectedvoid

android - 我如何在 AsyncTask 中从 onPostExecute 发回数据?

我的问题和这个一样InstancevariableofActivitynotbeingsetinonPostExecuteofAsyncTaskorhowtoreturndatafromAsyncTasktomainUIthread但我想将数据发送回同一个调用Activity。不启动Activity的Intent总是重新启动Activity 最佳答案 选项是使用监听器,您可以在其中创建一个您的Activity实现的接口(interface),例如:publicinterfaceAsyncListener{publicvoiddoSt

android - 单元测试用例中未调用 AsyncTask onPostExecute()

我看过很多与此相关的帖子,但似乎没有一个与我遇到的问题相同。GetBusinessRulesTask扩展了AsyncTask。当我在单元测试用例中执行此操作时,永远不会调用onPostExecute()。但是,如果我使用真实的客户端代码,则每次都会调用onPostExecute()。不确定我在这里做错了什么。测试用例:packagecom.x.android.test.api;importjava.util.concurrent.CountDownLatch;importandroid.test.ActivityInstrumentationTestCase2;importandroi

android - 在 onPostExecute() 中运行另一个 AsyncTask

如果我需要在另一个异步任务中运行另一个异步任务,这意味着在onPostExecute()方法中,该怎么办? 最佳答案 作为一项建议,请尝试尽可能多地卸载第一个AsyncTask中接听电话的时间。但是,如果您的应用程序设计方式是您只需要在第一个任务完成后执行另一个任务,那么只需按照与第一个任务完全相同的方式执行第二个AsyncTask一个。@OverrideprotectedvoidonPostExecute(Stringresult){newMySecondAsyncTask().execute(params);//paramsif

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

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

java - 有没有类似于传统线程的onPreExecute和onPostExecute的东西?

我之前使用的是AsyncTask,只是出于不值得为这个问题深入探讨的原因而转而使用传统的Thread。我该怎么做才能让某些东西在线程启动之前和之后执行,类似于onPre/PostExecute的功能?例如,假设我想在线程开始前显示一个加载圆圈,并在线程结束时将其关闭。我该怎么做?对于执行后位,我正在使用thread.join()并且它似乎可以解决问题。不过,我不确定这是否是解决问题的方法,或者如何进行预执行。 最佳答案 WhatcanIdotomakesomethingexecutebeforeandafterthethreadst