为了避免泄密,暂时不告知项目名称。
1、 代码尽量简洁和去重话:任何一个逻辑写两处相同的代码都有优化的可能性。因此,尽可能将公共的、重复使用的部分抽出来封装。例如,我们将打电话按钮、取消按钮,对话框封装。在以后对Activity之间的跳转、sharepreference、数据库等常用的也可以进行封装。
2、 在网络层和逻辑层之间封装一层实体层。在实体类中解析json,并转化成实体对象。解析json应该是在拿到json串后的第一时间进行,以后的数据都从实体类中获得。
3、 利用ActivityManager可以操作Activity栈,通过获得栈顶Activity名称可以判断当前活动栈是哪一个栈
4、 善于利用Activity中的onCreate(),onResum(),OnStart(),onPause().onStop()和OnDestroy()函数
5、 对象、函数功能应该越单一越好。数据流应该越清晰越好。
6、 不宜在BroadCaster的消息接收函数中做过多的事情,应该抛给handler处理。因为其生命周期很短。大约几秒钟。
7、 Handler运行于UI线程不断处理来自MessageQueue的消息,如果handler还有消息需要处理但是Activity页面已经结束的情况下,Activity的引用其实并不会被回收,这就造成了内存泄漏。解决方案,一是在Activity的onDestroy方法中调用handler.removeCallbacksAndMessages(null);取消所有的消息的处理,包括待处理的消息;二是声明handler的内部类为static。
8、 所有网络请求的地方请确定加旋转等待框。
9、 能用listView的地方尽量用,不要写死。这样写的优势是更加灵活并且在类中变量更少,类更加简洁。
10、 禁用back键,屏幕常亮、屏幕自动唤醒
11、屏幕自动唤醒在不同的机型上不适配,这是一个难点
解决办法: