代码之家  ›  专栏  ›  技术社区  ›  Barry Fruitman

从finally子句调用AttributeSet.recycle()是Android反模式吗?

  •  1
  • Barry Fruitman  · 技术社区  · 6 年前

    View 很多(包括SDK文档):

       TypedArray a = context.getTheme().obtainStyledAttributes(
            attrs,
            R.styleable.PieChart,
            0, 0);
    
       try {
           mShowText = a.getBoolean(R.styleable.PieChart_showText, false);
           mTextPos = a.getInteger(R.styleable.PieChart_labelPosition, 0);
       } finally {
           a.recycle();
       }
    

    我知道经常回收 AttributeSet ,但是 finally try 只有当 a null 或者如果 已经被回收了,在这种情况下我们不想打电话给 recycle()

    除了将来可能添加更多可能引发不同异常的代码外,是否有任何理由使用 try/finally 布洛克?

    0 回复  |  直到 6 年前