TabLayout があり、各タブの下に Fragment があります (ArrayPagerAdapter を使用しています)。タブから別のタブに何度も切り替えると、メモリ使用量が大幅に増加することに気付きました。ヒープ スナップショットから、多くの AutoCompleteTextView インスタンスがあることがわかります。
したがって、問題は次の場所にあると確信しています。
public class MyFragment {
...
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
...
final MultiAutoCompleteTextView eInput = (MultiAutoCompleteTextView) v.findViewById(R.id.TextInput);
EditorListener mEditorListener = new EditorListener();
eInput.setOnEditorActionListener(mEditorListener);
eInput.addTextChangedListener(new WhitespaceWatcher());
eInput.setAdapter(mDictionaryAdapter);
eInput.setTokenizer(new SpaceTokenizer());
...
}
...
class EditorListener implements TextView.OnEditorActionListener
{
@Override
public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent) {
...
MultiAutoCompleteTextView input = (MultiAutoCompleteTextView) textView.findViewById(R.id.TextInput);
...
}
}
...
}
しかし、どこに問題があるのか 正確に理解できません。