4

Application を拡張するクラスがあり、それをコードから呼び出したいのですが、

@Override
public void onCreate() 

これをアクティビティから呼び出す必要があります。マニフェストに含める必要があるアプリの起動時にそれを呼び出す方法を知っています:

 android:name=""

ありがとう。

4

5 に答える 5

11

アプリケーションを手動で呼び出すことは避けてください。正しく構成されていると自動的に開始されます。ただし、オーバーライドされたアプリケーションからメソッドを呼び出したい場合は、次のように行うことができます。

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()NonActivityクラスから呼び出すインスタンスを取得する必要があります。

-Adapterクラスから呼び出す場合は、Activityのコンテキストをadapterクラスに渡し、Applicationのインスタンスを取得する必要があります。

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

あなたからActivity単に電話します((YourAppName)getApplicationContext())

そしてまた、あなたはあなたの中に必要はありませんonCreate()Applicationあなたがそうすることを知っていない限り)。そこでいくつかのメソッドを設定してから、たとえばで呼び出すことができます((YourAppName)getApplicationContext()).myMethod()。アプリは、そのアクティビティのいずれかが存在する限り存続します。

于 2012-04-26T12:28:27.417 に答える
0

自分でメソッドを呼び出すべきonCreate()ではありません...Androidが自動的に呼び出します...このようなクラスの主な目的は、アプリケーション自体が単一のインスタンスであるため、グローバル変数をアプリケーション全体に共通に保つことです...

onCreate()また、OSが作成するアプリケーション/アクティビティでカスタムのものが必要になる場合があるため、オーバーライドできます。

于 2012-04-26T12:28:39.457 に答える