Во фрагменте вы должны вызывать 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 ();
Я прочитал Кодирование для производительности , но не вижу ничего релевантного.Я хотел бы получить некоторые отзывы о природе ОО, а также производительности (хотя, вероятно, незначительным).