0

そこで、Singleton Method を使ってアプリケーションを作ろうとしています。デバイスの Bluetooth 状態/接続/デバイスに関するすべての情報を格納するクラスが必要で、これらのメソッドにアクセスできる複数のアクティビティを作成したいと考えています。

Application を拡張するクラスが必要であることはわかっているので、getApplication() を呼び出すことですべてにアクセスできます。私が理解していないのは、このオブジェクトを初期化する場所です。私の基準からすると、これらの個別のアクティビティがすべてあります。1 つのオブジェクトを初期化する場合、インテントを使用してオブジェクトを次のアクティビティに渡す必要があります。これは、シングルトンを使用する目的を完全に無効にします。方法。

どんな助けでも感謝します、ありがとう。

4

3 に答える 3

2

から単純に拡張しandroid.app.Applicationます。次に、アプリケーション クラスとして次のように登録しますAndroidManifest.xml

<application android:name="mypackage.MyApplication" ...>

クラスでは、次のような通常の Android 呼び出しを受け取ります。

@Override
public void onCreate() { }

グローバルインスタンスを初期化できる場所。

アクティビティで、MyApplication ダウンキャストのインスタンスを次のようにフェッチします。

MyApplication app = (MyApplication) getApplication();

それが役立つことを願っています。

于 2012-06-15T15:12:10.787 に答える
1

Application を拡張した場合、アプリの起動時にクラスが作成されます。getApplication() を使用してアクティビティ クラスで取得できます。

于 2012-06-15T15:07:23.937 に答える