安卓开发之基于AsyncTask的socket常连接方法。

本文探讨了在安卓开发中如何使用AsyncTask处理socket常连接问题。由于主线程不能直接进行socket操作,作者通过研究AsyncTask,发现了可以利用publishProgress和onProgressUpdate方法来实现数据的交互,从而在后台实现长连接。尽管这种方法可能涉及一些潜在的漏洞和安全性问题,但为了解决UI线程与socket通信的难题,作者提供了这一创新思路。

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

安卓开发之基于 AsyncTask的socket常连接方法。

我要编写一个通过socket和服务器通信的安卓程序。但是安卓主线程也叫UI线程,由于要操控UI不允许建立socket链接之类的有可能阻塞线程的操作。我决定用安卓特有的AsyncTask来完成(应该是安卓特色吧!)。通过2天对AsyncTask的研究。发现AsyncTask有一个局限。如果要在doInBackground部分进行死循环监听的话。doInBackground一旦启动,主线程就不能再把别的参数送进去执行。doInBackground就像铁桶般难以渗透。要想长连接数据交换根本不可能。试了很多方法都失败了。2天里搞得我茶饭不思。正准备要放弃AsyncTask时候,发现有一个通过向主线程操作ui的方法publishProgress。关于AsyncTask详细介绍我就不啰嗦了。网上资料大把。这里只讲关键的。我也不想贴代码只讲原理。通过大家确实想看代码就“强烈要求”吧。干活在下面:
如果在doInBackground中执行publishProgress(st)后st会被送到onProgres
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值