【问题标题】:is that OK I define a static Application object inside the custom Application class for reference in Android?可以我在自定义应用程序类中定义一个静态应用程序对象以在 Android 中引用吗?
【发布时间】:2012-02-23 02:02:57
【问题描述】:

我的问题是我有一些异步任务需要我的自定义应用程序对象来调用一些功能。每次我想创建一个异步任务时,我都必须将应用程序对象或当前上下文传递给它。

我在想如果我将应用程序对象设为静态会怎样。

类 MyApp 扩展应用程序 {

静态 MyApp 应用;

公共 onCreate() { 应用程序=这个; }

}

然后我可以得到这个全局应用程序对象(MyApp.app),而不必传入上下文。

这样好吗?有什么风险吗?

【问题讨论】:

    标签: android static global


    【解决方案1】:

    你实际上不需要这样做, 只需创建 Application 的子类并在清单中声明您自己的应用程序。

    <Application
        android:name="blah.YourApplication">
    </Application>
    

    然后要访问它,您只需要一个 Activity 或 Service 实例来 getApplication() 并将其转换为您的“YourApplication”类。

    由于您想在 AsyncTask 子类中访问“YourApplication”,因此您应该将启动 AsyncTask 的服务或活动传递给您的“AsyncTask”子类,以便您可以访问内部的“YourApplication”。

    【讨论】:

    • 我不想将服务或活动传递进去,这很烦人。所以我想用一个静态变量。
    • 那么在这种情况下,您的方法应该没问题。无论如何,在您的应用程序的生命周期中只有一个“应用程序”类的实例。
    猜你喜欢
    • 2018-03-10
    • 2011-03-26
    • 2015-06-27
    • 1970-01-01
    • 2010-09-26
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多