我有一个非活动类,需要启动一个新活动.现在,我只是将当前上下文作为参数传递,但是如果可能的话,我想静态地访问该上下文.我已经尝试过创建一个新的应用程序(MyApplication扩展了Application),它既是新应用程序又是主应用程序,但都没有起作用.有什么建议么?
当前代码:
public class SharedFunctions { public static voID doSomething(Context context){ Intent i = new Intent(context, NextActivity.class); context.startActivity(i); }}
解决方法:
更为干净的方法是将Context传递给每个方法.它的类型更多,但有助于确保您不会泄漏参考.
当然,如果确实需要静态引用,则可以在SharedFunctions类中保留一个静态成员,然后为每个Activity设置它.
onResume()和onPause()可能是设置/清除它的好地方,但是根据您的需要,您可能需要更改它.请尽量不要保留对旧活动的引用.
public class SharedFunctions{ private static Context context; public static voID setContext(Context ctx){ context = ctx; } public static voID doSomething(){ context.someContextFunction(); }}
在每个活动中:
protected voID onResume(){ SharedFunctions.setContext(this);}protected voID onPause(){ SharedFunctions.setContext(null);}
总结 以上是内存溢出为你收集整理的android-如何静态获取非活动类的当前活动上下文全部内容,希望文章能够帮你解决android-如何静态获取非活动类的当前活动上下文所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)