是否可以调用扩展Application android的类?

时间:2012-04-26 12:23:32

标签: android

我有一个扩展Application的类,我想从代码中调用它,它有

@Override
public void onCreate() 

我需要从一个Activity中调用它。我知道如何在应用程序启动时调用它,我需要包含在清单中:

 android:name=""

感谢。

5 个答案:

答案 0 :(得分:7)

您应该避免手动调用应用程序onCreate,因为如果正确配置了任何内容,它将自动启动。但是,如果要从被覆盖的应用程序中调用方法,可以这样执行:

public class MyApplication extends Application{
    public void someMethod(){}
}

然后在任何活动中:

MyApplication app = (MyApplication)getApplication()
app.someMethod();

答案 1 :(得分:1)

应用程序启动时调用应用程序类onCreate()。如果要调用在Application类中声明的方法,可以将其称为

((Application_Class_Name)getApplicationContext()).calling_method();

从扩展Activity的任何其他类开始,否则你必须使用上下文来从非活动类中调用getApplicationContext()的实例。

例如 - 如果要从Adapter类调用它,则需要将Activity的上下文传递给适配器类并获取Application的实例,

((Application_Class_Name)mContext.getApplicationContext()).calling_method();

答案 2 :(得分:1)

试试这个:

public class YourApplication extends Application 
{     
     public void sayHello {
        System.out.println("Hello")
    }
}

然后通过以下方式在任何活动中调用它:

YourApplication appState = ((YourApplication)this.getApplication());
appState.sayHello();

答案 3 :(得分:0)

Activity开始,您只需拨打((YourAppName)getApplicationContext())

此外,您onCreate()中不需要Application(除非您知道)。您可以在那里设置一些方法然后用例如它们调用它们。 ((YourAppName)getApplicationContext()).myMethod()。只要您的任何活动都在,您的应用程序就会存在。

答案 4 :(得分:0)

你不应该自己调用onCreate()方法...... Android为你做了......这样一个类的主要目的是将全局变量保持为整个应用程序,因为Application本身就是一个实例...

它允许您覆盖onCreate(),因为您可能需要操作系统创建的Appliucation / ACtivity中的自定义内容..