android-如何静态获取非活动类的当前活动上下文

android-如何静态获取非活动类的当前活动上下文,第1张

概述我有一个非活动类,需要启动一个新活动.现在,我只是将当前上下文作为参数传递,但是如果可能的话,我想静态地访问该上下文.我已经尝试过创建一个新的应用程序(MyApplication扩展了Application),它既是新应用程序又是主应用程序,但都没有起作用.有什么建议么?当前代码:publicclassS

我有一个非活动类,需要启动一个新活动.现在,我只是将当前上下文作为参数传递,但是如果可能的话,我想静态地访问该上下文.我已经尝试过创建一个新的应用程序(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-如何静态获取非活动类的当前活动上下文所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1087706.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存