我有一个扩展Application的类,我想从代码中调用它,它有
@Override
public void onCreate()
我需要从一个Activity中调用它。我知道如何在应用程序启动时调用它,我需要包含在清单中:
android:name=""
感谢。
答案 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中的自定义内容..