android知识点汇集(持续更新)
res/raw和asserts
相同点:打包都会原封不动的保存在apk中,不会编译成二进制。
不同点:res/raw中的文件会被映射到R.java中,asserts不会;无法读取res/raw下的目录结构,asserts可以。
读取:res/raw使用InputStream input = getResources().openRawResource(int resId);
asserts使用InputStream input = getAsserts().open(String fileName);
getWritableDatabase()和getReadableDatabase()
两者都可以获取一个用于操作数据库的SqliteDatabase实例。
getWritableDatabase()以读写方式打开数据库,当数据库的磁盘空间满了,就会打开失败。
getReadableDatabase()先执行getWritableDatabase(),当打开失败会继续尝试以只读方式打开数据库。
代码方式设置Activity
无标题栏:在setContentView()之前调用 requestWindowFeature(Window.FEATURE_NO_TITLE);
自定义标题栏:requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_bar自定义的标题栏布局);
全屏:getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 同前一个参数);
ANR(Application Not Responding)程序无响应
默认情况下,Activity最长执行时间是5秒,BroadcastReceiver最长执行时间是10秒。
避免方案:主线程尽可能少做事情。潜在的耗时操作,如网络或数据库操作,或高耗时的计算如改变位图尺寸,应在子线程里完成。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。