Android应用程序中的内存泄漏和奇怪的崩溃

时间:2018-03-30 02:07:42

标签: android multithreading memory-leaks

我遇到的问题是我认为是内存泄漏。

以下是原因:

  1. 我知道我的应用占用了大量内存,我在Android Studio的图表中看到了它

  2. 我的手机有时会出现内存异常

  3. 我进行了测试,一些用户应用程序崩溃了,但是有些人没有。有趣的是,一个拥有LG G4(4年左右)的朋友没有任何问题,另一个Pixel 2 XL的朋友无法打开应用程序,它会在主要活动中崩溃。

  4. 有时当人们关闭应用并尝试使用应用切换器时,应用切换器本身会崩溃。但是,一旦他们删除我的应用程序,一切都恢复正常

  5. 如果他们试图删除该应用,它会在到达屏幕时崩溃。例如:他们会继续设置....直到他们到达卸载页面。他们向下滚动到我的应用程序,一旦屏幕注册,我的应用程序设置崩溃了。并且消息读取设置没有响应,或类似的东西。

  6. 但这是我的问题:

    1. 我检查了所有图片,没有超过20kb,因为我读到的限制接近600kb

    2. 我使用内置功能的android studio检查了泄漏情况,但没有出现。

    3. 我将所有上下文调用更改为getApplicationContext()

    4. 我使用了LeakCanary,它只发现了8 MB的泄漏。那个漏洞发生在我认为是机器人的地点上。

    5. 这真的是问题吗?

      另一个潜在的问题,我不确定我会听到多么愚蠢,但我已经使用过任何线程了。我开始使用它们打开新的活动,例如:

       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();
      

      但我发现性能上有任何差异。

      但除此之外,一切都在主线上运作。 我不确定这种习惯有多糟糕。

      任何建议肯定会帮助我!

      谢谢!

0 个答案:

没有答案