Во фрагменте вы должны вызывать getActivity () каждый раз, когда вам нужна ссылка на действие или создавать глобальную переменную mActivity и использовать ее.
В основном вы уже есть объект Activity (getActivity ()), и создается впечатление, что создание глобального (mActivity) - это дублирование кода и создание лишней ссылки, которая не нужна. Но также везде выглядит с помощью getActivity () ужасно и кажется неправильным выполнять несколько вызовов методов каждый раз (производительность?).
// Pseudo Android
public class MyFragent extends Fragment {
private Activity mActivity; // Global
public void onActivityCreated(Bundle b){
mActivity = getActivity();
}
public void onClick(View v){
randomMethodTakingActivity(mActivity);
// or
randomMethodTakingActivity(getActivity());
}
private void someMethod(){
randomMethodTakingActivity(mActivity);
// or
randomMethodTakingActivity(getActivity());
}
private void anotherMethod(){
mActivity.someCallback();
// or
getActivity().someCallback();
}
}
Это также актуально для getApplication () или getView ();
Я прочитал Кодирование для повышения производительности , но не вижу ничего важного. Я хотел бы получить отзывы о объектно-ориентированном характере, а также о производительности (хотя, вероятно, незначительной).