我遇到的问题是我认为是内存泄漏。
以下是原因:
我知道我的应用占用了大量内存,我在Android Studio的图表中看到了它
我的手机有时会出现内存异常
我进行了测试,一些用户应用程序崩溃了,但是有些人没有。有趣的是,一个拥有LG G4(4年左右)的朋友没有任何问题,另一个Pixel 2 XL的朋友无法打开应用程序,它会在主要活动中崩溃。
有时当人们关闭应用并尝试使用应用切换器时,应用切换器本身会崩溃。但是,一旦他们删除我的应用程序,一切都恢复正常
如果他们试图删除该应用,它会在到达屏幕时崩溃。例如:他们会继续设置....直到他们到达卸载页面。他们向下滚动到我的应用程序,一旦屏幕注册,我的应用程序设置崩溃了。并且消息读取设置没有响应,或类似的东西。
但这是我的问题:
我检查了所有图片,没有超过20kb,因为我读到的限制接近600kb
我使用内置功能的android studio检查了泄漏情况,但没有出现。
我将所有上下文调用更改为getApplicationContext()
我使用了LeakCanary,它只发现了8 MB的泄漏。那个漏洞发生在我认为是机器人的地点上。
这真的是问题吗?
另一个潜在的问题,我不确定我会听到多么愚蠢,但我已经使用过任何线程了。我开始使用它们打开新的活动,例如:
final Handler handler = new Handler(Looper.getMainLooper());
new Thread(new Runnable() {
@Override
public void run() {
handler.post(new Runnable() {
@Override
public void run() {
Intent open = new Intent(MainActivity.this, className);
startActivity(open);
}
});
}
}).start();
但我发现性能上有任何差异。
但除此之外,一切都在主线上运作。 我不确定这种习惯有多糟糕。
任何建议肯定会帮助我!
谢谢!