我有一个继承自Application的类,我想从代码中调用它,这个类有
@Override
public void onCreate()
我需要从Activity中调用这个函数。当应用程序启动时,我知道如何调用它,因此我需要在清单中包含:
android:name=""
谢谢。
我有一个继承自Application的类,我想从代码中调用它,这个类有
@Override
public void onCreate()
我需要从Activity中调用这个函数。当应用程序启动时,我知道如何调用它,因此我需要在清单中包含:
android:name=""
应避免手动调用应用程序的onCreate方法,因为如果一切配置正确,它会自动启动。但是,如果您想从重写的Application中调用方法,可以按照以下方式进行:
public class MyApplication extends Application{
public void someMethod(){}
}
接着在任何活动中:
MyApplication app = (MyApplication)getApplication()
app.someMethod();
public class YourApplication extends Application
{
public void sayHello {
System.out.println("Hello")
}
}
然后在任何活动中通过以下方式调用:
YourApplication appState = ((YourApplication)this.getApplication());
appState.sayHello();
应用程序类onCreate()
在应用程序启动时被调用。如果你想调用你在应用程序类中声明的方法,可以像这样调用它:
((Application_Class_Name)getApplicationContext()).calling_method();
如果从扩展Activity的其他类中调用,您需要使用上下文获取getApplicationContext()
实例以从非Activity类调用。
例如- 如果您想从Adapter类调用它,则需要将Activity的上下文传递给Adapter类并获取Application的实例,
((Application_Class_Name)mContext.getApplicationContext()).calling_method();
从 Activity
中,你可以简单地调用 ((YourAppName)getApplicationContext())
。
此外,在你的 Application
中,你不需要 onCreate()
(除非你知道你需要)。你可以在那里设置一些方法,然后使用例如 ((YourAppName)getApplicationContext()).myMethod()
调用它们。只要它的任何一个活动还活着,你的应用程序就是活着的。
getApplicationContext()
返回的是和 getApplication()
相同的内容吗? - Rafael TonCreate()
方法...Android 会为你调用...这样的类的主要目的是保持整个应用程序共同使用的全局变量,因为 Application 本身是单个实例...
而且它允许你覆盖 onCreate()
方法,因为你可能需要在操作系统创建的应用程序/Activity 中添加自定义内容。