问个线程的问题
android app开发的时候,都有很多个activity,基本每个activity都需要请求服务器,获取想要得到的数据。而请求网络的耗时都很大,所以不可以在主线程中做这些操作,需要另开启线程,和Handler配合使用。
我的步骤是:
1.开启线程
2.请求某路径获得json返回值
3.解析json并获得返回对象
4.通知handler操作完成,让handler做下一步处理
但是现在有一个问题,每个activity里,每次请求网络都需要做这相同的步骤,不同的只有请求网络的路径,调用不同的方法解析json,和返回不同的Entity。我想有没有什么样的方法,可以把这个线程抽取出来,让所有activity共用,我们只需要传入相应的路径和想要获得的Entity或者什么样的值,就能得到我们想要的东西。哪位大神有办法,帮我解释一下,谢谢 线程 android
[解决办法]
那人就封装网络请块这块的功能代码,返回的结果由各个子activity去解析..
[解决办法]
我觉得是这样:
你在主线程中创建一个Handler对象,把你所谓的“线程类”抽出来做成一个MyThread,然后MyThread的构造函数,传入(“相应的路径”,"想要获得的Entity",“刚创建的Hanlder对象”),然后json回来之后,你接收到之后再通过Handler来处理UI线程~
[解决办法]
我的想法是 网络请求放在一个类里 里面开启线程获取资源 至于初始化 各种参数等在构造函数里处理
解析放在另一个类里
把你的各种返回定义一个基类 比如Result神马的
然后不同的返回结果各种继承 AResult BResult...
然后定义协议 返回体 加上返回类型的关键字 比如 resul-type=A
这样你解析得到A 就按AResult这个类的定义去解析(不同的结果调用不同的方法解析) 并用解析到的值实例化一个AResult 返回给请求的activity
[解决办法]
把耗时的都在子线程弄,
[解决办法]
写个公共类专门处理网络链接获取数据,然后返回结果在不同的Activity里面解析就可以吧。
[解决办法]
写一个解析数据的接口,每个实体类需要解析自己的数据要实现这个接口,由于有不同的Entity,可以考虑用泛型。主线程不适宜处理大数据,要另起子线程,但请求的结果必须要回调函数处理,不然会造成这个App挂死无响应的现象。