com.android.internal.policy.impl. PhoneLayoutInflater, иногда остающийся в памяти (hprof дампы)

Я осматриваю память, пытающуюся найти возможные утечки памяти через дампы hprof.

Я нахожу, что иногда, когда я оставляю действие через кнопку "Назад" (который закончил бы действие), действие все еще останется в памяти, но это только имело бы два корня GC, которые, кажется, не очень 'сильны' все же.

Это - мой поток действия / способ, которым я нажимаю и тестирую:

A, B, C быть операциями.

1)-> B-> (назад к) A

2) сделайте дамп hprof со следующим результатом:

B находится все еще в памяти, единственные элементы в корне GC действия B:

com.myapp.android.activity.directory. B

  • mContext com.android.internal.policy.impl. PhoneLayoutInflater

    • mLayoutInflater android.app. ContextImpl [Стек, Локальный]

      • [локальная переменная] java.lang. Поток "основной" [Поток]
  • mOuterContext android.app. ContextImpl [Стек, Локальный]

    • [локальная переменная] java.lang. Поток "основной" [Поток]

("Основной" поток, кажется, поток UI),

продолжите от A:

3)-> C-> (назад к) A

4) сделайте дамп hprof со следующим результатом (как ожидалось):

B больше не находится в памяти, C больше не находится в памяти, только A

Теперь мой вопрос: то, куда этот PhoneLayoutInflater происходит из / почему это остается в памяти, когда я возвращаюсь от B до A, но за этим следовали бы, пошло далее на C, и возвратитесь назад к A.

Очевидно, PhoneLayoutInflater для расширения представлений, я знаю, это - цель. Я просто не вижу, почему это было бы сохранено в памяти через корень GC от основного потока UI.

Когда я проверяю корни GC перечисленных вышеупомянутых

[локальная переменная] java.lang. Поток [Поток], "основной

это имело бы следующее:

  • mUiThread com.myapp.android.activity.main. [Стек, Локальный]
    • ....
      • 0 this$ android.view.inputmethod. InputMethodManager$ControlledInputConnectionWrapper [JNI, Глобальный]

Путем я называю операции B, и C от A через постоянного клиента startActivity(intent)

Почему был бы основной поток UI действия так или иначе быть связанным и сосланным от действия B?

8
задан Mathias Conradt 30 June 2010 в 13:50
поделиться