博客关注了一位大牛。被成功煲了一壶鸡汤,于是开始卸荣耀,卸贴吧,装keep,装慕课。我不知道我能坚持多久,总之,无论身处何处,都要让自己看起来与众不同吧。 -题记
作为一个发育了有一小段时间的码农来说,我渐渐开始了解了一些前辈不愿意告诉你的不知名的bug,摸索的过程有点不知所然。
Ok,这里讲的就是我在之前在开发中遇到的一个问题。我明明在一个程序中对这个全局变了赋值了,为什么还是为空。为什么必须在这个代码断的里面setAdapter才不为null。为什么,这3个方法不是从上往下执行。debug下,发现还真不是从上往下执行的。。。可怕
一、不得不说java存在的回调机制
我们知道android中日常开发会用到继承(extends)和实现(implements)。而最普遍存在的就是onclick事件,这就是一个回调,一个Activity中给按钮一个接口回调方法,只有用户点击了这个按钮,告诉按钮被点击了,才会执行按钮接口回调的方法,或许叫监听你就会懂了。仔细想想,我们代码片段也是这样的,并不是从上往下执行的,如果存在回调的话。我这边遇到的问题就是在你封装的基类方法中(baseAct)中的oncreate方法中写了请求网络的方法,结果就用到了回调,可能你觉得,程序应该从上往下执行的,但是这里恰恰不是。只有在回调执行后才会真正取到那个值,然后才可以进行赋值等一系列的操作。否则,程序体会执行完整个代码片段后再去回调这个操作。这就是新手往往会百思不得其解的地方了。。。。大概就是这么个意思了。。。至于真的要水的话,还是推荐个链接自己看吧。。。