作者pauliaia ()
看板AndroidDev
标题[问题] Android Handler管理UI的写法
时间Thu Jun 18 15:03:31 2015
想问各位老手
在Android当中 会有handler 写在 activity上面去控制activity UI
目前我也是使用这个方法
class myActivity extends Activity {
class mHandler extends Handler{
@Override
public void handleMessage(Message msg) {
switch ......
}}}
然後把handler传给需要控制UI的物件 sendmessage 改UI
我的问题:
我在Activity里面需要写控制UI handler
可是我发现目前Activity 变得有点脏乱 原因是 太多UI需要动 function也很多
我想到的办法是
额外再创一个class 继承Handler 可能叫ActivityHandler 然後建构子放上View参数
并放init() 去findViewByID
可是这样写好吗??
还是可以用interface ?
请指教 感恩
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 211.22.206.217
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1434611013.A.245.html
1F:→ mshockwave: 会很乱是因为你开很多thread吗?main thread中操作UI 06/18 15:29
2F:→ mshockwave: 不用用到handler吧 06/18 15:29
3F:推 abccbaandy: databinding 06/18 15:33
4F:→ pauliaia: 有多个thread 在控制 图像拨放但是也有非thread object 06/18 16:02
5F:→ pauliaia: 直接用message 控制ui 因为我不想再物件控制UI 感觉很乱 06/18 16:02
6F:→ htury: 有动到ui的,建议用asyncTask比较省事 06/18 16:11
7F:→ pauliaia: 歪楼了XD 我主要是说handler的部分 要怎改写因activity 06/18 17:41
8F:→ pauliaia: 很大 06/18 17:41
9F:→ visor: runOnUiThread 06/18 18:10
10F:推 givemepass: 直接new Hanlder了 UI部分再用runOnUiThread 06/18 20:41
11F:推 wendly777: 建议可以用RxJava + lambda 06/19 00:03
12F:→ KeySabre: 可能要先厘清怎样觉得脏乱,想改成怎样才叫不脏乱 06/19 01:57
13F:→ KeySabre: 我个人是不喜欢把handler传出去外面,倾向定义interface 06/19 02:00
14F:→ KeySabre: … 06/19 02:00
15F:推 JULONE780701: 写法跟你很像,但我不完全是为了改UI而用 06/19 09:20
16F:→ JULONE780701: 主要是为了UI/background Thread的切换 06/19 09:21
17F:推 JULONE780701: 把使用动机改成任务取向,应该会比较漂亮 06/19 09:25
18F:推 givemepass: 直接new Thread了 UI部分再用runOnUiThread 打错 06/19 12:13