intent和handler的理解和使用

1、intent是作为一个参数传递机制存在的。

     (1)它可以向activity传递参数以及Object。(Object需要进行序列化)。

     (2)它可以进行系统级别的调用、比如:调起系统拨号页面、调起系统设置等。

     (3)intent传递参数的方式:(intent.putString("key","value")、intent.putInt("key","value")       等。)。

2、handler主要是用来在线程中刷新界面(UI)显示的。
Handler 两个关键性用途:
1.可以定时发送 Message 或 Runnable 对象;
1.如何发送延迟消息,2.如何发送循环消息,3.如何发送带参数的消息以及拦截消息。
2.在一个线程处理一个动作。

     (1)使用时,需要new handler(){}、在new的时候,里面接收传递的handler的what      值,与传递时给定的静态常亮做一个对应关系,来进行不同的操作。(其中what为int        类型)。

     (2)handler中还可以做休眠操作。让线程等待几秒后再运行。(在线程等待时,需要进行try{}catch(Exceptione){}捕捉异常。(在try{}catch(Exception e){}final{}其中finally{}是 不管try和catch走了哪个,都会执行finally{}中的方法。))

     (3)在传递handler的时候,可以传递intent类型的值,intent中可以保存数据。然后在new handle(){}的时候进行接收,判断what并执行获取intent中参数的操作。)
     主要有四个方法:post(Runnable)、postdelay (Runnable, long)、sendMessage(Message)、sendMessageDelayed(Message, long) ;

要注意的是:Handler 发消息是分为了两种,一种是 Message 对象(sendMessage(Message)),另一种是 Runnable 对象(post(Runnable));而在代码最底层就会发现, Runnable 最后也是被封装成 Message 对象。

**handle出现的原因:
一个 Activity 多个线程更新 UI,而且没有加锁机制,那会怎么样?
会出现更新界面混乱;因为没有加锁,引起了多线程并发问题。
那么我们对更新 UI 的操作进行加锁处理,又会怎么样?
会引起性能下降;每一个加锁的方法都会导致性能有一定的下降。
使用handle的优点:
Android 提供了一套更新 UI 的机制,只需要遵循它就可以,这样我们不用关心多线程并发的问题;所有更新 UI 的操作,都在主线程的消息队列中轮询处理。
**
发送延迟消息

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值