本博客为某在线教学网站课程笔记
● App Standby(应用待机)
检测:当设备不充电时,且在这时间用户没有直接或者间接的启动该应用。
退出:应用被激活时,或者设备充电时,系统将应用移除此状态。
所以在android6.0后台的应用很容易被回收
● Doze(状态)
检测:当设备不充电时,且当设备静止且灭屏一段时间。
周期:平台尝试让系统处于休眠状态,周期性的进入在一个维持窗口回复正常工作,然后进入一个更长状态的。
希望应用之间的联系,弱化与APP与浏览器的交互,强化APP之间的连接。
简单地说没就是,A APP提供一个跳转的规则,B APP按照这个规则跳转到A App,如果用户没有安装APP那么就会提供一个下载安装地址,这大大提高的用户体验。
比如我们在微博中看到微信的推广广告,我们点击广告,如果此时用户安装了微信则直接跳转到微信,如果没有安装则提供一个安装链接。
6.0之前,各大手机厂商自己定制指纹识别API。
6.0开始提供相应的API
运行时权限,就是当使用到某个权限时会弹出提示框询问用户时候授予权限。
查看危险性权限
adb shell pm list permissions -d -g在BaseActivity中添加
/** * 为子类提供一个权限检查方法 * @param permissions * @return */ public boolean hasPermission(String... permissions){ for (String permission:permissions){ if (ContextCompat.checkSelfPermission(this,permission)!= PackageManager.PERMISSION_GRANTED){ return false; } } return true; } /** * 为子类提供权限请求方法 * @param code * @param permissions */ public void requestPermission(int code,String... permissions) { ActivityCompat.requestPermissions(this, permissions, code); } @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { switch (requestCode){ case 100: doSdcardPermission(); break; } } /** * 默认的写SD权限处理 */ private void doSdcardPermission() { }在继承BaseActivity的Activity中需要请求SD权限的地方写
if (hasPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)){ //do }else { requestPermission(100,Manifest.permission.WRITE_EXTERNAL_STORAGE); } 并且重写baseActivity中处理权限结果的方法 @override private void doSdcardPermission() { //实现 }