0
我不是要求差異,但如何使用這些引用?,類級別的對象來存儲他們的引用或每次由超類提供的使用getter,這是一個更好的代碼實踐:1.調用getActivity(),getApplicationContext ()..每次在本地方法或傳遞方法中作爲參數在活動或片段中需要時。哪種方法可以更好地編寫getActivity(),getApplicationContext()?
- 將它們的引用存儲在類級別的對象中,並在需要時使用它,並在活動或片段中使用null檢查。
我想知道什麼是更有效率,爲什麼?
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();
}
}
}
活動和應用程序上下文用於不同的目的。如果他們之間沒有差異,我們只能得到一個。請參閱文檔以瞭解稍微但重要的區別 – Blackbelt
我不問我差異的問題如何使用它們:使用類級對象或使用提供的getter方法。 –
'getActivity()'不是'Activity'的一種方法,順便說一句,如果你在一個可以直接訪問上下文的類中,不需要提供以Context爲參數的方法。只有在方法是靜態的時候才需要這樣的方法 – Blackbelt