我有一个扩展应用程序的类,我想从代码中调用它,它有
@Override
public void onCreate()
我需要从活动中调用它。我知道如何在应用程序启动时调用它,因为我需要包含在清单中:
android:name=""
谢谢。
我有一个扩展应用程序的类,我想从代码中调用它,它有
@Override
public void onCreate()
我需要从活动中调用它。我知道如何在应用程序启动时调用它,因为我需要包含在清单中:
android:name=""
谢谢。
您应该避免手动调用应用程序 onCreate,因为如果配置正确,它将自动启动。但是,如果您想从覆盖的应用程序中调用方法,您可以这样做:
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 类中声明的方法,你可以这样调用它,
((Application_Class_Name)getApplicationContext()).calling_method();
从扩展 Activity 的任何其他类,否则您必须使用上下文来获取getApplicationContext()
要从非 Activity 类调用的实例。
例如 -如果你想从适配器类调用它,你需要将 Activity 的上下文传递给适配器类并获取应用程序的实例,
((Application_Class_Name)mContext.getApplicationContext()).calling_method();
从Activity
您只需调用((YourAppName)getApplicationContext())
.
而且,你不需要onCreate()
在你的Application
(除非你知道你这样做)。您可以在那里设置一些方法,然后使用例如调用它们((YourAppName)getApplicationContext()).myMethod()
。只要它的任何 Activity 存在,您的应用程序就会存在。
你不应该自己调用onCreate()
方法......Android会为你做......这样一个类的主要目的是保持全局变量对整个应用程序通用,因为Application本身是一个实例......
它允许您覆盖onCreate()
,因为您可能需要操作系统创建的应用程序/活动中的自定义内容..