哪个是更好的编码getActivity(),getApplicationContext()的方法?

时间:2016-03-02 11:42:21

标签: java android

我不是要求差异,而是如何使用这些引用?,类级别对象存储它们的引用或每次使用getter由超类提供,这是一个更好的代码实践:1。调用getActivity(),每次在本地方法中使用getApplicationContext().. iec,或者在活动或片段中需要时将方法作为参数传递。

  1. 将他们的引用存储在类级别对象中,并在活动或片段中使用null检查时使用它。
  2. 我想知道什么更有效,为什么?

    type1:
    
    Class A extends Activity
    {
      @Override
      public void onCreate()
      {
          methodA(getApplicationContext());
          //or if fragment
          methodA(getActivity());
    
          Toast.makeText(getApplicationContext(),...).show();
      }
    
     private void methodA(Context mContext)
     {
       ......
       ......
     }
    private void methodA()
     {
       Activity activity = getActivity();
       ......
       ......
     }
    
    }
    
    type2:
    
    class A extends Activity{
    private Activity mContext;
    private Activity mActRef; //if fragment
    
    @Override
    public void onCreate()
    {
     mContext = getApplicationContext();
     mActRef = getActivity();//if fragment;
          methodA(mContext);
          //or if fragment
          methodA(mActRef);
       ..........
    .........
    .........
    
          Toast.makeText(mContext,...).show();
     }
    
     private void methodA(Context mContext)
     {
       ......
       ......
     }
    private void methodA()
     {
       Toast.makeText(mContext,....).show();
     }
    
    }
    
    }
    

1 个答案:

答案 0 :(得分:-1)

getActivity()和getApplicationContext()都返回上下文,并且在整个类中都可以使用Activity扩展。

根据我的意见,不需要为他们创建一个全局变量,因为它们在类级别可用。两者都是正确的,但存储上下文效率不高。