这个 & 是什么意思啊 和&&啥区别啊 括号里不应该返回布尔值吗 为什么 == 0啊
if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) { appInfos.add(appInfo); }
0
收起
正在回答
2回答
这里的&,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,所以结果可以跟0比较。判断(applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM)的值,该值大于0时,表示获取的应用为系统预装的应用,反之则为手动安装的应用。为什么与0比较这就涉及到ApplicationInfo实体类的设计了,如果你感兴趣也可以去研究下底层的源码设计。
Android网络操作与数据存储2018版
- 参与学习 人
- 提交作业 307 份
- 解答问题 1613 个
本专题是联网及数据处理的必备技能。课程从网络基础知识到线程间协同工作、异步下载处理。介绍了Android内外部文件存储、轻量级数据库SQLite的使用。利用屏幕适配、状态保持、百度地图解决实际问题。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星