写的是什么东西
写的是什么东西
Run/Debug Configurations 添加一个新的应用模版 将Default APK 改为APK from app bundle 就可以避免该问题
Android Studio上,使用cmake编译出来的so只有arm64-v8a架构的问题原因问题提出 使用Android Studio进行NDK开发,用cmake编译jni文件,build.gradle文件中配置生成armeabi-v7a和arm64-v8a两种架构...
关于mlastsrvview泄露的问题,只要在 String [] arr = new String[]{"mCurRootView", "mServedView", "mNextServedView"};中加入"mLastSrvView",去掉for循环中else中的break就能解决,也就是说这几个方法都要循环一遍. 亲测有效
另外关于if (v_get.getContext() == destContext),原博客上已经做了解释了,去掉了会导致有输入框的界面无法弹出软键盘的问题.
完整代码是这样的
public static void fixInputMethodManagerLeak(Context destContext) {
if (destContext == null) {
return;
}
InputMethodManager imm = (InputMethodManager) destContext.getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm == null) {
return;
}
String[] arr = new String[]{"mCurRootView", "mServedView", "mNextServedView", "mLastSrvView"};
Field f = null;
Object obj_get = null;
for (int i = 0; i < arr.length; i++) {
String param = arr[i];
try {
f = imm.getClass().getDeclaredField(param);
if (f.isAccessible() == false) {
f.setAccessible(true);
} // author: sodino mail:sodino@qq.com
obj_get = f.get(imm);
if (obj_get != null && obj_get instanceof View) {
View v_get = (View) obj_get;
if (v_get.getContext() == destContext) { // 被InputMethodManager持有引用的context是想要目标销毁的
f.set(imm, null); // 置空,破坏掉path to gc节点
}
// FIXME: 2018/12/21 不要break,因为华为还有一个mLastSrvView
}
} catch (Throwable t) {
t.printStackTrace();
}
}
}
前言:应鸿洋大神建议完善一下细节,之前确实写得比较简洁,适合有功底的人看,本文重在思路和性能,就不介绍自定义view和handler避免内存泄漏或是导致空指针这些了,喜欢请c...
前言 当前比较流行的Android开发框架当属MVP、RxJava、Retrofit2、Dagger2了,而在这些框架之中,学习成本最高也是最难上手的应该就是Dagger2了...
8.0 开启service 不应该用startForegroundService?为什么还看到startservice
自己用到的Android 双服务保活(适配8.0)最近开发的时候,测试小伙伴经常来找我,“为什么咱家程序放到后台,聊了会qq就得重启了呢?”我脑门一亮,“稍等,一会给你”。然后我就进入了程序流氓(进程保活)之旅。对于进程保活...
最近对前端特有兴趣 索性就学起了前端 通过视频和培训机构 不过自己感觉这个培训机构是真的好 哈哈 等我学成归来 再来大波广告。 开发工具 对于前端的开发工具 目前我选择su...
handler 还会造成内存泄露
异步消息处理机制Handler异步消息处理线程启动后会进入一个无限的循环体之中,每循环一次,从其内部的消息队列中取出一个消息,然后回调相应的消息处理函数,执行完成一个消息后则继续循环。若消息队列为空,线程...
咱们什么都不说 先附上知识点 数据绑定的几种方式点击事件绑定的几种方式双向绑定数据RecycleView的数据绑定@InverseMethod 标签的使用在DataBindi...
咱们什么都不说 先附上知识点 数据绑定的几种方式 点击事件绑定的几种方式 双向绑定数据 RecycleView的数据绑定 @InverseMethod 标签的使用在DataB...
咱们直接点,直接上实战,把常用的标签的用会了,用熟了总的有以下几点 数据绑定的几种方式 点击事件绑定的几种方式 双向绑定数据 RecycleView的数据绑定 @Invers...
本文都是接合其他作者的总结,再加上自己实际操作中遇到的一些问题,来综合编写。 DataBinding的配置 因为网上一篓筐,就直接上代码 就这样三行代码,DataBindin...