4

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

@Override
public void onCreate() 

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

 android:name=""

谢谢。

4

5 回答 5

11

您应该避免手动调用应用程序 onCreate,因为如果配置正确,它将自动启动。但是,如果您想从覆盖的应用程序中调用方法,您可以这样做:

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

然后在任何活动中:

MyApplication app = (MyApplication)getApplication()
app.someMethod();
于 2012-04-26T12:29:13.250 回答
3

试试这个 :

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

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

YourApplication appState = ((YourApplication)this.getApplication());
appState.sayHello();
于 2012-04-26T12:28:59.787 回答
2

onCreate()应用程序启动时调用应用程序类。如果你想调用你在 Application 类中声明的方法,你可以这样调用它,

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

从扩展 Activity 的任何其他类,否则您必须使用上下文来获取getApplicationContext()要从非 Activity 类调用的实例。

例如 -如果你想从适配器类调用它,你需要将 Activity 的上下文传递给适配器类并获取应用程序的实例,

((Application_Class_Name)mContext.getApplicationContext()).calling_method();
于 2012-04-26T12:28:40.657 回答
0

Activity您只需调用((YourAppName)getApplicationContext()).

而且,你不需要onCreate()在你的Application(除非你知道你这样做)。您可以在那里设置一些方法,然后使用例如调用它们((YourAppName)getApplicationContext()).myMethod()。只要它的任何 Activity 存在,您的应用程序就会存在。

于 2012-04-26T12:28:27.417 回答
0

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

它允许您覆盖onCreate(),因为您可能需要操作系统创建的应用程序/活动中的自定义内容..

于 2012-04-26T12:28:39.457 回答