我当时使用的是AsyncTask,但出于这个问题不值得探讨的原因,刚切换到使用传统的Thread.
与onPre / PostExecute的功能相似,我该怎么做才能在线程启动之前和之后执行某些 *** 作?
例如,假设我要在线程开始之前显示一个加载圆,并在线程结束时将其关闭.我该怎么做?
对于执行后位,我正在使用thread.join(),它似乎可以解决问题.我不确定这是否是解决问题的方法,还是不确定如何执行预执行.
解决方法:
What can I do to make something execute before and after the thread starts, similar to the functionality of onPre/PostExecute?
onPreExecute()->在线程上调用start()之前执行的语句
onPostExecute()->从您的线程调用VIEw上的runOnUiThread()或post(),提供要在主应用程序线程上执行的Runnable
How would I do that?
理想情况下,您不会.进度对话框糟透了.在用户界面的某个位置(例如, *** 作栏,标题栏)放置一个进度指示器,并禁用线程运行时用户无法安全执行的一些 *** 作.
话虽如此,您大概会在执行线程之前显示DialogFragment,然后通过上述机制在线程完成后删除该片段.
For the post-execution bit, I’m using thread.join() and it seems to do the trick.
ck那将阻塞您正在使用的任何线程,如果那是主应用程序线程,那确实很糟糕.
更新
runOnUiThread()的示例:
new Thread() { public voID run() { // do cool stuff runOnUiThread(new Runnable() { public voID run() { // do other cool stuff quickly on the main application thread } ); }}).start();
总结 以上是内存溢出为你收集整理的java-是否有类似于onPreExecute和onPostExecute的传统线程?全部内容,希望文章能够帮你解决java-是否有类似于onPreExecute和onPostExecute的传统线程?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)