2

我想知道如何正确获取LayoutInflater实例以及将其保留多长时间。

android 文档指出:

它从不直接使用。相反,使用 getLayoutInflater() 或 getSystemService(String) 来检索标准 LayoutInflater 实例,该实例已连接到当前上下文并为您正在运行的设备正确配置。

我的问题:

  • getSystemService(String) 是否很快,所以我可以在需要实例的任何地方调用它?
  • 我应该将充气实例存储在一个变量中以备后用吗?
  • 我想我在 SDK 中看到了一些接口,即 pass LayoutInflater,他们为什么这样做?
4

2 回答 2

5

getSystemService(String) 是否很快,所以我可以在需要实例的任何地方调用它?

AFAIK,是的,尽管您可能想要运行测试并检查 Traceview 中的方法跟踪以确认。

我应该将充气实例存储在一个变量中以备后用吗?

如果您处于紧密循环中,请在局部变量中挂起实例,而不是getLayoutInflater()每次都创建调用。否则,我不知道这是一个值得的优化。

我想我在 SDK 中看到了一些通过 LayoutInflater 的接口,他们为什么这样做?

为您省去打电话的麻烦getLayoutInflater()

于 2012-12-21T15:26:22.947 回答
1

getSystemService(String) 是否很快,所以我可以在需要实例的任何地方调用它?

您也可以inflater = LayoutInflator.from(this);用来取回充气机。我个人发现使用这种方法编写的代码更少。

我应该将充气实例存储在一个变量中以备后用吗?

存储在局部变量中很好。

于 2013-02-28T01:14:03.797 回答