痕迹

2019-10-15  本文已影响0人  稣梵

写在前面

​ 很久没有进行的写作了,似乎什么都坚持不了很长的时间呀,此刻是比较无聊,开始这文档来记录一些开发遇到的一些问题吧,仅为记录,内容无序,会比较杂乱。

Dialog不显示的问题

​ 大的可能性是调用顺序的问题,Dialog的生命周期是在调用show()方法后开始的,onCreate只会在首次调用show方法时执行一次。

Android P(target Api 28)要求应用使用加密连接

为保证用户数据和设备的安全,Google针对下一代 Android 系统(Android P) 的应用程序,将要求默认使用加密连接,这意味着 Android P 将禁止 App 使用所有未加密的连接,因此运行 Android P 系统的安卓设备无论是接收或者发送流量,未来都不能明码传输

出现java.net.UnknownServiceException: CLEARTEXT communication ** not permitted by network security policy

解决方式:

1、APP改用 https 请求

2、targetSdkVersion 降到27以下

3、更改网络安全配置

首先,在res文件夹下创建一个xml文件夹,然后创建一个network_security_config.xml文件,文件内容如下:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>

接着,在AndroidManifest.xml文件下的application标签增加以下属性

<application
...
android:networkSecurityConfig="@xml/network_security_config"
... />

Android5.0 PopupWindow不显示问题

在Android5.1(api 22) 及以下版本,PopupWindow 需要设置宽高才能正常显示。

       if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.LOLLIPOP_MR1){
            this.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
            this.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
        }

Handler AsyncTask 等匿名内部类可能造成的内存泄漏

Java中匿名内部内会隐式持有外部类的引用,可能会造成外部类无法回收,从而引起内存泄漏。

private  static class MyHandler extends Handler {
 WeakReference<Activity > mActivityReference;

 MyHandler(Activity activity) {
     mActivityReference= new WeakReference<Activity>(activity);
 }

 @Override
 public void handleMessage(Message msg) {
     final Activity activity = mActivityReference.get();
     if (activity != null) {
        activity.doSomething;
     }
 }
}

RecyclerView 复用View 出现的内容错乱

关于recyclerview的view复用机制可能导致图片显示出现错乱,比如加载网络图片时,由于网络不好,加载尚未完成的ImageView就已经被复用了,当加载完成的时候就会在已经复用的View进行显示,导致错乱。


20160702091821577.jpg

未完待续...

上一篇 下一篇

猜你喜欢

热点阅读