基础篇(十三) Activity,Service,子线程 通信

本文详细介绍了Android应用中采用Activity、Service及Thread三层架构的设计思路。通过合理的架构分层,不仅能够有效管理后台线程,还能确保Activity与Service之间的稳定通信。文章提供了多种通信方式的具体应用场景和技术指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Activity中直接创建Thread,Android系统在内存不足时,会将一些Activity销毁,这样Thread就会失去管理对象,使程序发生意想不到的结果。
Service默默地运行在后台,生命周期可控,更合适管理Thread。形成Activity-->Service-->Thread三层结构。Activity将需要的任务告诉Service层,Service层创建Thread去完成任务。Thread将任务的进度、状态、错误信息反馈给Service,Service将这些消息反馈给相关的Activity,并且还可以利用Notification更新通知栏消息。

一、Activity<-->Service通信
1. Activity调用startService (Intent)方法,将消息添加到Intent对象中,Service对象可以在调用onStartCommand (Intent)的时候得到这些消息。如             果有大量的信息要传递的话,Service端要判断一下消息是什么,才能作进一步的处理。
2. Activity调用bindService ()方法,得到Service里Binder对象的引用,这样Activity可以通过binder实现与Service的通信。
3. Service向Activity发送消息,可以使用Broadcast,当然Activity要注册相应的 BroadcastReciever。比如Service要向多个Activity发送同样的消               息,用这种方法就很好。 ( 参考:http://blog.youkuaiyun.com/liuhe688/article/details/6641806
4. Service向Activity发送消息,可以 使用Handler,利用Application间接把Handler传给Service。
二、 Service<-->Thread通信
Service创建Thread后,如果要对 Thread进行控制(启动,暂停,停止等),Service中保留 Thread引用,就可以直接 调用Thread的方法。
Thread要向Service发送消息,通常使用Handler。 参考: http://blog.youkuaiyun.com/liuhe688/article/details/6407225

三、 Activity<-->Thread通信
Activity创建Thread后,如果要对Thread进行控制(启动,暂停,停止等),Activity中保留Thread引用,就可以直接调用Thread的方法。
Thread要向Activity发送消息,通常使用Handler。 参考: http://blog.youkuaiyun.com/liuhe688/article/details/6407225
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值