2

インスタンスを適切に取得する方法と、インスタンスを保持する期間について疑問に思っていLayoutInflaterます。

Androidのドキュメントには次のように記載されています。

直接使用されることはありません。代わりに、getLayoutInflater()またはgetSystemService(String)を使用して、現在のコンテキストにすでに接続されており、実行しているデバイス用に正しく構成されている標準のLayoutInflaterインスタンスを取得します。

私の質問:

  • getSystemService(String)は高速なので、インスタンスが必要な場所ならどこでも呼び出すことができますか?
  • 後で使用するために、インフレータインスタンスを変数に保存する必要がありますか?
  • SDKでいくつかのインターフェイスを見たと思いますが、それは合格ですがLayoutInflater、なぜそうするのですか?
4

2 に答える 2

5

getSystemService(String)は高速なので、インスタンスが必要な場所ならどこでも呼び出すことができますか?

AFAIK、はい。ただし、テストを実行し、Traceviewでメソッドトレースを調べて確認することもできます。

後で使用するために、インフレータインスタンスを変数に保存する必要がありますか?

タイトなループにいる場合は、getLayoutInflater()毎回呼び出しを作成するのではなく、ローカル変数でインスタンスにハングアップします。そうでなければ、それが価値のある最適化であることに気づいていません。

LayoutInflaterを渡すいくつかのインターフェイスをSDKで見たと思いますが、なぜそうするのですか?

を呼び出す手間を省くためgetLayoutInflater()

于 2012-12-21T15:26:22.947 に答える
1

getSystemService(String)は高速なので、インスタンスが必要な場所ならどこでも呼び出すことができますか?

inflater = LayoutInflator.from(this);インフレータを取得するために使用することもできます。私は個人的に、このメソッドを使用して書くコードが少ないと感じています。

後で使用するために、インフレータインスタンスを変数に保存する必要がありますか?

ローカル変数に格納するのは問題ありません。

于 2013-02-28T01:14:03.797 に答える