如题。在broadcastreceiver中的onReceive方法需要接受一些数据并上传到服务器,这个操作可能会比较耗时,BroadcastReceiver在10秒内没有执行完毕,Android会认为该程序无响应,如果需要完成一项比较耗时的工作,应该通过发送Intent给Service,由Service来完成。这个service需要接收从broadcastreceiver传过来的数据。
这个如何实现呢?直接statService启动服务无法接收数据,如果用BindService的话,当broadcastreceiver同时多次被触发的时候怎么办?
------解决思路----------------------
onReceive 里面不能做耗时的事情,一般是把数据处理提交给线程处理,不建议在Receive里面启动线程。
可以在Service里面开启线程,让线程来处理数据上传问题。
------解决思路----------------------
不一定需要在onReceive里启动线程,可以事先启动好,在onReceive把数据通过消息发送给这个线程去上传。
------解决思路----------------------
不是service,你直接用Handler的sendMessage把数据发到线程里处理就可以。
------解决思路----------------------
正想说用intentservice,封装了异步功能,其实和启动线程差不多