昨晚在写团队项目的时候,遇到一个问题,直到今天早上才解决。。。即在自定义view“转盘”结束转动后获取结果的处理中,我是想吧值传到activity中的一个textview中的,但我的自定义view类不是activity的内部类,所以activity的属性不能共享,无法在转盘速度为0时获取到覆盖0度角的扇形所对应的字符串然后将其设置为textview的text,再者说,UI不能在子线程中更新,就算自定义view类是activity的内部类,也不能这么简单地更新UI。因为之前写过一个activity的内部自定义view类,所以觉得这次这样写很不方便,感觉view和activity的通信变得更复杂,但我觉得把它模块化再耦合会更好一点,毕竟这个类代码全部塞到activity中也不是很好。说到UI不能在子线程中更新,好吧如果我把这个更新放在主线程中,又有一个问题了:本身等待转盘速度变成0就是一个耗时操作,它的实现是通过画一个个扇形实现的,不断重复画,一遍画完然后速度减小(也就是扇形起始角增加变小),可见如果在activity主线程中等待的化,主线程十有八九会挂掉。今天早上解决了这个问题,起始不管自定义view是不是内部类,用线程+广播就好了
未完待续。。
原文地址:https://www.cnblogs.com/Xpliang/p/8970971.html
时间: 2024-10-31 12:23:28