InputMethodManager引起的内存泄漏解决方案,亲测有效
程序员文章站
2022-05-28 13:02:38
...
通过leakcanary检测内存泄漏,老是出现InputMethodManager引起的内存泄漏,查看过很多资料,应该是android源码的bug。leakcanary官方提供的解决这个问题的方法,测试发现没有用。通过反复查阅测试发现下面的方法可以解决这个问题,所以记录下来
先写一个透明的过渡Activity
/**
* 解决InputMethodManager引起的内存泄漏
* Created by liuxin on 2018/4/8.
*/
public class DumpActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
finish();
}
}, 500);
}
}
为这个Activity应用透明主题
配置清单文件
<activity
android:name=".ui.DumpActivity"
android:theme="@style/AppTheme.Transparent"
/>
style.xml
<!-- Customize theme for floating. -->
<style name="AppTheme.Transparent" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
在会发生内存泄漏的Activity调用
@Override
public void onBackPressed() {
super.onBackPressed();
startActivity(new Intent(this, DumpActivity.class));
finish();
}
推荐阅读
-
'BMap' is not defined 导致百度地图无法正常显示的解决方案,亲测有效!
-
eclipse中创建web项目时不能创建 Dynamic web project的解决方案(亲测有效)
-
InputMethodManager引起的内存泄漏解决方案,亲测有效
-
electron-vue中加载render文件夹下的图片资源在开发环境下加载失败解决方案(亲测有效!!!)
-
【亲测有效】Kali Linux无法安装网易云音乐的解决方案
-
【亲测有效】Kali Linux无法安装网易云音乐的解决方案
-
Vue打开时界面出现{{message}}的解决方案,亲测有效
-
【亲测有效】Github无法访问或者访问速度的解决方案
-
【亲测有效】Github无法访问或者访问速度的解决方案
-
Python从父目录的其他文件夹中导入模块的解决方案(亲测有效)