所以,我的第一个主要应用程序几乎编码,我正在对我的代码进行优化。该应用程序工作正常,但我不确定我的方式将上下文传递给其他类。我不想这样做。我偶然发现了有关上下文的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中再次设置该值。 –