草庐IT

onpostexecute

全部标签

Android - 在 AsyncTask onPostExecute() 中设置的共享首选项并不总是设置?

我有一些代码在98%的时间都有效,在我自己的测试中100%,所以除了让用户设备遇到此问题外,我无法真正重现该问题。我在onPostExecute()中所做的是设置如下参数:SharedPreferencesprefs=PreferenceManager.getDefaultSharedPreferences(AddProblemActivity.this);prefs.edit().putString("recent_problem_id",result).commit();然后进入下一个Activity:IntentmyIntent=newIntent(AddProblemActiv

java - 如何将 JSONObject 从 doInBackground() 方法返回到 AsyncTask 上的 onPostExecute() 方法?

在Android应用程序中,我想将JSONObject从doInBackground()方法返回到onPostExecute()方法。这是代码:privateclassAddAsyncTaskextendsAsyncTask{JSONObjectjsonObjRecv;Stringresult;@OverrideprotectedJSONObjectdoInBackground(JSONObject...params){AssetObjassetObj=newAssetObj();assetObj.setAssetName(txtname.getText().toString());a

android - 如何在 ASyncTask/onPostExecute 中使用来自资源的字符串来使用 Toast?

我有以下代码:@OverrideprotectedvoidonPostExecute(Voidarg0){...Toast.makeText(getBaseContext(),getBaseContext().getResources().getString(R.string.toast_sync_completed),Toast.LENGTH_SHORT).show();}它失败了(FC)。如果传递"Teststring"而不是getResources().getString(R.string.toast_sync_completed),则它可以正常工作。我做错了什么?

Android AsyncTask 在 doInBackground 返回多个值用于 onPostExecute

我最近刚刚阅读并测试了AsyncTask,现在我需要知道如何在onPostExecute部分传递多个值。好吧,我使用JSON解析器从Web获取值,但我从JSON获取的值是多个值,我将这些值传递到一个数组中,该数组由获取的每个数据的列标题分隔,这是我应该返回它的部分供onPostExecute使用。但据我所知,每次运行只能使用一次返回(如果我错了请纠正我)。到目前为止,这是我的代码:publicclassGetInfoextendsAsyncTask>{privatefinalStringTAG=null;InputStreamis=null;StringBuildersb=null;L

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 UI 线程消息队列调度顺序

虽然在Android中使用retainFragments在配置更改期间保存AsyncTask,我想这是最好的方法,但我对UIThread的消息队列调用顺序产生了一些疑问。例如:想象一下这种情况:发生配置更改,用户旋转设备。AsyncTask正在运行。fragmentonDetach()被调用AsyncTaskdoInBackground()方法完成AsyncTaskonPostExecute()被调用fragmentonAttach()被调用UI线程消息队列也可以这样:Queuetop->onDetach()|onPostExecute()|onAttach()我知道它不能,据我所知,

Android UI 线程消息队列调度顺序

虽然在Android中使用retainFragments在配置更改期间保存AsyncTask,我想这是最好的方法,但我对UIThread的消息队列调用顺序产生了一些疑问。例如:想象一下这种情况:发生配置更改,用户旋转设备。AsyncTask正在运行。fragmentonDetach()被调用AsyncTaskdoInBackground()方法完成AsyncTaskonPostExecute()被调用fragmentonAttach()被调用UI线程消息队列也可以这样:Queuetop->onDetach()|onPostExecute()|onAttach()我知道它不能,据我所知,

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

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