从出来了buddy列表,一个问题一直萦绕着,login得到了返回的buddy数据,要传给tabhost,tabhost再传tab2,中间就出错了,用Intent传不过去。于是开始了漫长的尝试。
1.用loginactivity 来broadcast,然后让tab2来接收。想得很好,但实施起来有麻烦。第一,broadcast继承自activity,你在login里面生成一个broadcast的一个对象是启动不了broadcast这个类的。启动不了就广播不出去。第二,receiver是继承自broadcastreceiver,tab2无法继承两个类。 java虽然用了implements的方法可以继承两个接口,但abstract类和接口还是有差别。 方法倒是有,可以用Intent从login传数据到broadcast,broadcast再用Intent传给receiver,把broadcast设置为不显示 android:...= .....是可以设的。但是receiver那边是解决不了的。 所以尝试失败。
2.用handler。研究玩发现handler是用来管理第二,第三线程的,跟该问题不搭边。Handler初探 - 我的Android开发志 - 51CTO技术博客 使用Android handler的一个简单例子 - OPEN 开发经验库
3,SQLite和content provider, 这个方法貌似是可以,但有点杀鸡用牛刀的感觉,因为这两个东西是用来进程间分享数据的。ContentProvider示例_飘缘寻梦,pekdou空间_百度空间 Android Service介绍 - Trinea - 博客园
4.完全可以不让login去取buddy的信息嘛,tab2自己发个request去server那里去取。这不就完了嘛。。。。。 还是不行,还是需要穿yigeusername,tab2才知道怎么查,还是第三种方法吧
现在找到了最好的方法,建一个User类,在MeInfor中生存一个static的user对象me 在loninActivity中new MeInfor(string) me.setAccount= me.setnick=...........