我正在尝试从Utilities.java
的子类之外的类Context
生成通知。我考虑过提供一个SingletonContext
课程并查看帖子ike this。我希望能够return != null
Context
对象,因为通知可以在任何给定时间生成,因为它是从messageReceived()
回调生成的。
做这样的事情有什么缺点:
public static Context c;
public class MainActivity extends Activity{
@Override
public void onStart()
super.onStart()
c = this.getApplicationContext();
}
//other method somewhere outside this class
public Context getContext(){
return MainActivity.c
}
我认为将它放在onCreate()
上没有任何不同,但是,它确保在活动开始时上下文是最新的。
答案 0 :(得分:4)
Context在内存中保留对此活动的引用,您可能不需要它。也许使用
this.getApplicationContext();
代替。这仍然允许您执行文件IO以及上下文所需的大多数其他事情。没有具体参考这项活动。
答案 1 :(得分:0)
也许你应该覆盖onResume方法。 如果您打开一个新活动并切换回来,则不会调用onStart方法。
Android生命周期:doc
BTW:我使用对话框或Toast来阅读ApplicationContext的问题,因此如果你使用上下文来创建这些问题,你应该使用你的Activity作为上下文。