Android и ООП - Глобальные переменные и унаследованные геттеры во фрагментах

Во фрагменте вы должны вызывать 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 ();

Я прочитал Кодирование для повышения производительности , но не вижу ничего важного. Я хотел бы получить отзывы о объектно-ориентированном характере, а также о производительности (хотя, вероятно, незначительной).

5
задан Blundell 26 October 2011 в 09:46
поделиться