java-是否有类似于onPreExecute和onPostExecute的传统线程?

java-是否有类似于onPreExecute和onPostExecute的传统线程?,第1张

概述我当时使用的是AsyncTask,但出于这个问题不值得探讨的原因,刚切换到使用传统的Thread.与onPre/PostExecute的功能相似,我该怎么做才能在线程启动之前和之后执行某些 *** 作?例如,假设我要在线程开始之前显示一个加载圆,并在线程结束时将其关闭.我该怎么做?对于执行后位,我正在使用t

我当时使用的是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的传统线程?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1085538.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存