第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

Android中注意事項(xiàng)!

標(biāo)簽:
Android

Android开发中应该注意的事项

1、子线程中不能更新界面,更新界面必须在主线程中进行

2、Fragment注意的事项:

a)  Activity调用Fragment中的方法

b)  Thread或者Handler调用Fragment中的方法

需要注意getActivity()可能为空;需要加入下面代码避免空指针

If(getActivity() == null || !isAdd()){

         return;

}

3、String类型的常量和变量相互比较要使用常量equals变量,因为变量可能为空;

If(常量.equals(变量)){

   ...

}

4、Activity或者Fragment中的BroadCastReceiver设置监听和取消监听要成对出现。onReceive方法中调用外部类要判空

5、网络操作不能在主线程中调用

6、Activity销毁之前必须先销毁附属在Activity上的Dialog;不能出现Activity销毁后,还操作Dialog对象的情况

7、使用数据库的时候要注意到数据库死锁的问题。如果数据库没有做同步处理,必须在主线程中调用db,保证db不被lock

8、Try catch 不能使用log打印错误信息,避免出现空指针。使用e.printStackTrace()打印错误信息

9、打开的流资源一定要关闭,比如文件读写,数据库读写

10、Static引用的Map或者List集合要手动释放,尽量不要使用static引用集合

11、遍历集合的时候不能对集合进行增删。常出现在多线程中

12、一个方法不能过长,方法过长要拆分成几个方法

13、判断条件比较多的情况下,尽量使用卫语句取代嵌套条件表达式,例如:

If(!file.exist()){

    return;

}

这样可以避免层次太深,维护代码时更关注主要逻辑,忽略非法情况

14、Do not keep long-lived references to a context-activity(a reference to an activity should have the same life cycle as the activity itself)

15、Try using the context-application instead of a context-activity

16、Avoid nonstatic inner classes in an activity if you don’t control their life cycle,use a static inner class and 

        make a weak reference to the activity inside.The solution to the issue is to use a static inner class with 

        a WeakReference to the outer class, as done in ViewRoot and its W inner class for instance.

        (创建handler的时候要使用static内部类,否则会出现内存泄露)

17、Android UI 布局中文字使用sp单位,其它的使用dp单位,不能使用px单位

18、一个方法内层级太深,可以使用卫语句减少层级,可以抽出多个方法,减少代码量

19、尽量少使用BroadcastReceiver,频繁使用广播会造成

a) 多对多调用

b) 传递参数很随意不受控制

c) 像指针一样,没有堆栈信息,碰到问题不容易解决

d) 破坏了类的封装性,违反了高内聚低耦合原则

20、能不使用Handler的情况下,尽量少使用Handler

a) 传递参数很随意不受控制,维护成本高

b) 异步消息接到后,界面状态需要判断,可能界面已经销毁

c) 使用了Handler,一定要控制一个类的范围内,不能将Handler传递到其他类中去,因为这样会破坏类的封装性

d) 像指针一样,没有堆栈信息,碰到问题不容易解决。这条相对BroadcastReceiver容易,因为在一个类内,找起来相对容易

21、编程要遵循高内聚、低耦合原则。类和类之间要尽量降低耦合性,一个类尽量少的依赖其它类里的属性或者方法

22、图片管理方法可以采用Universal-image-loader

23、Boolean型变量前缀使用has或者is

24、不能使用System.out.println打印log

25、变量命名不能1,2,3,4...后缀,要看名知意

26、If方法要有{}包裹

27、Log的tag不能是””

28、统一使用format和import格式开发

29、代码中不能出现硬编码(使用与配置分离,或者通过参数的方式,或者通过面向接口编程)

在Android开发中有时候代码为了方便直接硬编码,其实这是一种不好的习惯,在PC平台写代码可能直接使用的比较多。在移动平台上有时要考虑多国语言问题,Android设计了getString()方法从资源Res文件夹中读取String字符串,这些字符串以xml形式保存在Values.xml文件中。Android平台在一定程度上更面向对象,除了Java本身,在构架上仍然使用MVC这样的UI和代码逻辑分离,UI可以专心的设计用户界面,代码可以通过类似Jar或MIDL文件来再发行应用,大大提高了代码复用和维护性。

上面都是硬编码的坏处,其实好处也是有的,从单独语言和简单程序来说具有运行效率高和设计简单等方法,但是对于复杂的工程还是建议MVC方式设计比较合理。Android对于资源文件进行了缓存机制,在R类中进行全局注册,也就是说findViewById之后会对这个xml文件做缓存,比如Layout或String。

30、不能在for循环中进行独立的数据库操作

31、不能使用ScrollView包裹ListView/GridView/ExpandableListVIew;因为这样会把ListView的所有Item都加载到内存中,要消耗巨大的内存和cpu去绘制图面

原文链接:http://www.apkbus.com/blog-784586-61499.html

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶(hù)
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專(zhuān)欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消