Android内部类的内存泄漏和上下文泄漏?

斯特拉

我在启动画面中使用Handler来延迟重定向到下一个活动,如下所示。

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.entrance);
        screenTimeOut();
    }

    private void screenTimeOut() {
          /* New Handler to start the next screen
         * and close this Entrance after some seconds.*/
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                initTracker();
                /* Create an Intent that will start the Next-Activity. */
                checkLoginStatus();
            }
        }, SPLASH_DISPLAY_LENGTH);
    }

在另一项活动中,将上下文传递给一个类,并在单击按钮时按如下方式保存其中的上下文

 private Tools tools;

 tools = new Tools(DetailsScreen.this, true);

工具

    private Context _context;
    private Fragment _fragment;
    private Activity activity;
    private String filePath = null;
    private String camImagePath = null;

    public Tools() {
    }

    public Tools(Context _context, boolean flag) {
        this._context = _context;
        this.activity = (Activity) _context;
        initPath();
        if (flag) {
            createImageFile();
        }
    }

这些中的任何一个是泄漏的原因吗?

以及如何使用处理程序如下。

 private Handler mHandler = new Handler();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.entrance);
        screenTimeOut();
    }

 private void screenTimeOut() {
          /* New Handler to start the next screen
         * and close this Entrance after some seconds.*/
        mHandler.postDelayed(new Runnable() {
            @Override
            public void run() {
                initTracker();
                /* Create an Intent that will start the Next-Activity. */
                checkLoginStatus();
            }
        }, SPLASH_DISPLAY_LENGTH);
    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
        mHandler.removeCallbacksAndMessages(null);
    }
亨利
  1. Handler并且Runnable不应以匿名方式使用。
  2. 您应该避免将整个活动作为参数传递给其他类。如果上下文是您要使用的全部activity.getContext()

此处的更多信息:
http : //www.androiddesignpatterns.com/2013/01/inner-class-handler-memory-leak.html http://www.androiddesignpatterns.com/2013/04/activitys-threads-memory-leaks .html

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

如何解决SpriteKit SKTexture的CGImage“上下文泄漏”?

来自分类Dev

内部类具有对外部类的隐式引用,并且可能会泄漏内存

来自分类Dev

strdup和内存泄漏

来自分类Dev

LocationListener和内存泄漏

来自分类Dev

如何解决警报对话框从传递了上下文的类中泄漏的问题?

来自分类Dev

此代码如何解决“资源泄漏:'上下文'永不关闭”警告?

来自分类Dev

从非静态内部类引用App上下文

来自分类Dev

GoogleTest和内存泄漏

来自分类Dev

无法从静态上下文引用内部类,但仅当外部类是通用类时

来自分类Dev

可以从Android中的Singleton中释放上下文,以防止内存泄漏

来自分类Dev

防止线程被垃圾回收,并防止上下文泄漏

来自分类Dev

Android动画内存泄漏

来自分类Dev

Symfony和PhpUnit内存泄漏

来自分类Dev

内存泄漏和多态

来自分类Dev

如何解决SpriteKit SKTexture的CGImage“上下文泄漏”?

来自分类Dev

使用Hilt注入上下文:此字段泄漏上下文对象

来自分类Dev

LocationListener和内存泄漏

来自分类Dev

我的PyV8上下文泄漏内存

来自分类Dev

如何解决警报对话框从传递了上下文的类泄漏的问题?

来自分类Dev

从非静态内部类引用App上下文

来自分类Dev

可以从Android中的Singleton中释放上下文,以防止内存泄漏

来自分类Dev

valgrind泄漏摘要中的上下文数量指的是什么?

来自分类Dev

如何在静态上下文中使用带有上下文参数的类而不引起内存泄漏?

来自分类Dev

将上下文传递给android活动中的helper类会泄漏吗?

来自分类Dev

Android 应用程序和内存泄漏

来自分类Dev

Android - 应用程序上下文可以解决内存泄漏吗?

来自分类Dev

Android:使用共享 EGL 上下文时内存泄漏

来自分类Dev

Android:由于活动和上下文存储为对象属性而导致内存泄漏?

来自分类Dev

带有泄漏上下文的静态字段

Related 相关文章

  1. 1

    如何解决SpriteKit SKTexture的CGImage“上下文泄漏”?

  2. 2

    内部类具有对外部类的隐式引用,并且可能会泄漏内存

  3. 3

    strdup和内存泄漏

  4. 4

    LocationListener和内存泄漏

  5. 5

    如何解决警报对话框从传递了上下文的类中泄漏的问题?

  6. 6

    此代码如何解决“资源泄漏:'上下文'永不关闭”警告?

  7. 7

    从非静态内部类引用App上下文

  8. 8

    GoogleTest和内存泄漏

  9. 9

    无法从静态上下文引用内部类,但仅当外部类是通用类时

  10. 10

    可以从Android中的Singleton中释放上下文,以防止内存泄漏

  11. 11

    防止线程被垃圾回收,并防止上下文泄漏

  12. 12

    Android动画内存泄漏

  13. 13

    Symfony和PhpUnit内存泄漏

  14. 14

    内存泄漏和多态

  15. 15

    如何解决SpriteKit SKTexture的CGImage“上下文泄漏”?

  16. 16

    使用Hilt注入上下文:此字段泄漏上下文对象

  17. 17

    LocationListener和内存泄漏

  18. 18

    我的PyV8上下文泄漏内存

  19. 19

    如何解决警报对话框从传递了上下文的类泄漏的问题?

  20. 20

    从非静态内部类引用App上下文

  21. 21

    可以从Android中的Singleton中释放上下文,以防止内存泄漏

  22. 22

    valgrind泄漏摘要中的上下文数量指的是什么?

  23. 23

    如何在静态上下文中使用带有上下文参数的类而不引起内存泄漏?

  24. 24

    将上下文传递给android活动中的helper类会泄漏吗?

  25. 25

    Android 应用程序和内存泄漏

  26. 26

    Android - 应用程序上下文可以解决内存泄漏吗?

  27. 27

    Android:使用共享 EGL 上下文时内存泄漏

  28. 28

    Android:由于活动和上下文存储为对象属性而导致内存泄漏?

  29. 29

    带有泄漏上下文的静态字段

热门标签

归档