所以,我的第一個主要應用程序幾乎編碼,我正在對我的代碼進行優化。該應用程序工作正常,但我不確定我的方式將上下文傳遞給其他類。我不想這樣做。我偶然發現了有關上下文的Stackoverflow中的文章和問題,以及將它傳遞給非活動類的正確方法。我也閱讀了文檔,但作爲一個芬蘭人使複雜的技術說話更難以理解。將上下文傳遞給非活動類的最佳實踐?
所以,一個簡單的問題。我將主要活動的上下文傳遞給其他(輔助)類的方式是否正確?如果沒有,我可以在哪裏閱讀更多有關這些情況的更好實踐。
例如: MainActivity.java
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle sis){
super(sis);
new Helper(MyActivity.this).makeMyAppAwesome();
}
}
Helper.java
public class Helper {
Context context;
Helper(Context ctx){
this.context = ctx;
}
public void makeMyAppAwesome(){
makeBaconAndEggsWithMeltedCheese(context);
}
}
這樣行嗎?如果有人能夠提供一個容易閱讀的文章並帶有關於這個主題的例子,這將是很好的。
拇指的基本規則是不抱到了'Context'長於'Context'存在。 –
這是我不確定我理解的一種說法。很明顯,我不在另一個Activity中使用相同的上下文,但是這可能不是您所說的內容? –
對於這個例子來說,關鍵在於理解Activity的生命週期。這將防止內存泄漏並使用Activity的舊實例(在您的示例中不會發生這種情況)。在你的幫手中,我將包括一種方法來在onStop中設置activity null並在onStart中再次設置該值。 –