不可不知的android开发冷知识8

来源:互联网 发布:李喆工笔画网络班 编辑:程序博客网 时间:2024/05/22 04:26

1、在开发过程中,发现用的第三方串口库在4.4、5.1系统上运行正常,而在6.0系统上却打开串口错误。原因是编译串口.so文件的版本太低,而工程中的targetSdk太高,因此把targetSdk改成小于23就可以了。如:targetSdkVersion 22

2、Activity的onActivityResult比onResume早调用,这个知识很重要,例如跳到另一个界面的时候,在onPause中将某个状态置为了false,某个界面返回后需要根据返回的数据进行更新。而更新时需要根据这个状态为true才可以更新,这时就需要在onActivityResult中先将状态置为true,而不是等onResume时才置为true。

3、使用leakcanary发生eferences android.view.inputmethod.InputMethodManager问题,这时可以参考以下连接解决:Github解决方案

4、使用android Studio 3.0体验kotlin时出现 Plugin is too old and ANDROID_DAILY_OVERRIDE 问题。
原因是beta/alpha版本有40天限制,在此之后Android Studio就会强制我们升级新版本。但是这个所谓的新版本在引用库中并不存在(最新版是配合Android Studio 3.0使用的alpha版),解决方法是在系统环境变量中添加一个环境变量ANDROID_DAILY_OVERRIDE,设置为Android Studio中提示的值。

5、Android隐藏返回键

    WindowManager.LayoutParams params = getWindow().getAttributes();         params.systemUiVisibility =View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;         getWindow().setAttributes(params);  

需要在4.0以上,在setContentView之前加。

6、Android数据库升级暂不支持删除列,因此以下写法是错误的。

final String dropMachinePassword = "alter table "        +TABLE_MACHINE_SET+" drop column "+PASSWORD;db.execSQL(dropMachinePassword);

7、Android在数据库版本更新时添加列

final String addMachineModel = "alter table "                        +TABLE_MACHINE_SET+" add column "+MACHINE_MODEL+" TEXT DEFAULT('NONE')";final String addCleanHour = "alter table "                        +TABLE_MACHINE_SET+" add column "+MACHINE_CLEAR_HOUR+" INTEGER DEFAULT(0)";db.execSQL(addMachineModel);db.execSQL(addCleanHour);
原创粉丝点击