Android随记

  1. android 6.0 后网络请求权限配置

 android:usesCleartextTraffic="true"
  1. 使用retrofit 网络框架或者OKHttp框架时候需注意 [Java8的新特性]
    在build.gradle中添加以下代码
compileOptions{
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
  1. Activtity多层页面跳转,返回调用finish() 页面重复
    修复:
    最近写的一个模块 页面返回重复 返回调用finish 和重写Ondestroy 有一页面返回需调用两次finish(); 最后发现是ACtivity启动方式不好 修改为android:launchMode="singleTask" 问题解决

  2. 实现开机启动app中的一个服务时,在Receiver中不能通过startService启动,因为在android 8.0之后需要通过startForegroundService方式启动即可。不然可以启动服务失败而崩溃.

  1. 视频几大开源播放器

5.1 GSYVideoPlayer

项目地址: https://github.com/CarGuo/GSYVideoPlayer

介绍: 视频播放器,支持基本的拖动,声音、亮度调节,支持边播边缓存,支持视频本身自带rotation 的旋转(90,270之类),重力旋转与手动旋转的同步支持,支持列表播放 ,直接添加控件为封面,列表 全屏动画

5.2 ExoPlayer

项目地址: https://github.com/google/ExoPlayer

介绍: ExpPlayer是一个开源的,App等级的媒体API,它的开源项目包含了library和示例:ExoPlayer
library- 这部分是核心的库
Demo app- 这部分是演示怎么使用ExoPlayer的Demo

5.3 ijkplayer

项目地址: https://github.com/Bilibili/ijkplayer

介绍:Ijkplayer 是Bilibili发布的基于 FFplay 的轻量级 Android/iOS 视频播放器。实现了跨平台功能,API 易于集成;编译配置可裁剪,方便控制安装包大小;支持硬件加速解码,更加省电;提供 Android 平台 下应用弹幕集成的解决方案。

  1. 添加Window弹出遇到的问题
    : Unable to add window android.view.ViewRootImpl$W@a81209d -- permission denied for window type 2038
    解决方式:

1. 添加权限


2. 设置LayoutParams的type值
int LAYOUT_FLAG;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
     LAYOUT_FLAG = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
} else {
        LAYOUT_FLAG = WindowManager.LayoutParams.TYPE_PHONE;
}

layoutParams.type = LAYOUT_FLAG;

你可能感兴趣的:(Android随记)