Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 定期执行动作的最佳方式[正在运行应用程序] – 处理程序?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图定期执行一个动作.我想创建一个类的新实例,比如说,3秒.最好通过使用Handler或Thread实现这一点吗?有没有一种更容易,多样的方式我可以尝试?我真的不善于使用线程 – 我想学习,但更重要的是让我在这功能之前,担心好的编程实践. @H_262_2@new Thread(){ public void run(){ //makes sure the player still has 3 lives left while(game == falsE){ uiCallBACk.sendEmptymessage(0); try { Thread.sleep(2000); // wait two seconds before drawing the next flower } catch (InterruptedException E) { // TODO Auto-generated catch block e.printStackTrace(); } //sleep for 2 seconds } } }.start();

解决方法

在Android应用程序中做类似的事情我每10秒在我的界面更新一些数据.有很多方法可以做到这一点,但是我选择使用Handler,因为它很简单: @H_262_2@Thread timer = new Thread() { public void run () { for (;;) { // do stuff in a separate thread uiCallBACk.sendEmptymessage(0); Thread.sleep(3000); // sleep for 3 seconds } } }); timer.start(); ... private Handler uiCallBACk = new Handler () { public void handlemessage (message msg) { // do stuff with UI } };

您可能知道,您不能在UI线程中运行这样的定期功能,因为它会阻止UI.这将创建一个新的线程,在完成后向UI发送消息,因此您可以使用定期功能的新结果更新UI.

如果您不需要使用此周期函数的结果来更新UI,则可以简单地忽略我的代码示例的后半部分,并且只会生成一个新线程,如图所示.但是,请注意:如果您要修改此新线程和UI共享的变量,那么如果不同步,则会遇到问题.一般来说,线程不是您想要忽略“良好的编程实践”的领域,因为您会收到奇怪的,不可预知的错误,您将会诅咒您的程序.

-tjw

大佬总结

以上是大佬教程为你收集整理的android – 定期执行动作的最佳方式[正在运行应用程序] – 处理程序?全部内容,希望文章能够帮你解决android – 定期执行动作的最佳方式[正在运行应用程序] – 处理程序?所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。