1、acitivity的跳转,返回上一个界面是结束当前界面,而不是从当前界面去跳转前一个界面(即将前一个界面创建了一遍),概念要理清,具体写法由隐式和显式多种写法。像这种操作UI界面,可以多使用fragment,就像看新闻点击一层层推送新闻,每次退回都是返回前一个浏览的新闻。
2、写Android代码的时候,也要注意java中空指针问题,空指针就是在栈中声明了一个对象,但是并没有在堆中实例化,要先if-else判断下传参操作的对象是否为null。
在一些转换(强制)类型的代码里,最好也要用try-catch进行异常判断(比如接口和类相互转化),如果转换失败最好再抛出异常,便于检查代码。
在acticity里直接对activity内容进行操作,最好不要定义activity,而是使用官方getActivity()更加安全。
3、对于activity的生命周期的理解,这一块比较重要,在写控件注册和取消注册的时候,要确定activity激活和销毁的时候,哪个函数在栈顶,用CSDN模板不一定次次都行的通。这个和activity的启动方式有关,除了singleInstance(类似支付宝页面,不能再创建新的支付界面,只能用栈中唯一的那个支付界面),其他三种用的最多,当然根据情况如果没必要使用太多内存,还是用标准的启动方法比较好。
4、app运行闪退,看Manifest里面有没有注册活动,自定义activity有时候会没有自动注册;也可以将Manifest里面启动intent赋给出问题的activity,如果没有闪退,考虑前一个activity的layout有没有注册准确或者跳转语句有没有写错跳转对象的类,如果闪退了则是该activity出现问题,先检查layout,然后看看是不是有空指针异常,从而进行异常判断操作。还有一种情况就是权限有没有给全,在开发定位,网络资源的时候,要打开网络权限以及其他厂家SDK里的相关权限。
5、