使用するアプリケーションのグローバルクラス - Androidの

ディレクトリ

 

1.概要

2.Application基底クラス

3.カスタムアプリケーションクラス

4.Applicationライフサイクル

5.Applicationオブジェクトのコールバック関数

オブジェクト6.Applicationの役割

7.比較応用静的単一の共有データと共有データオブジェクト


1.概要

アンドロイドが提供するアプリケーションクラスの研究を通じて、Applicationクラスの関連する使用方法を理解して拡張され、そのようなQQのニックネームでQQとして主に(アプリケーション全体でグローバル変数)グローバルな状態を維持するために使用されるアプリケーションは、アプリケーション全体のさまざまな場所で入手することができますし、使用しています。

2.Application基底クラス

プログラムが起動されたとき、システムは、Androidアプリケーションオブジェクトを作成するときにAndroidのフレームワークのシステムコンポーネントなどのアプリケーションとアクティビティ、サービスは、基本クラスは、情報記憶システムの一部のために、アプリケーションのグローバル状態を維持することです。Androidシステム(あなたが定義されていないかどうか、デフォルト、)自動的には、アプリケーションがクラスのシングルトン(シングルトン)モードできるように、アプリケーションオブジェクトのクラスとは、一つだけを作成するときに実行している各プログラムのために作成されます。文書の以下のリストは、アプリケーションが全体の基底クラスであるmainiftest。

<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

3.カスタムアプリケーションクラス

各アプリケーション・プロセスは、デフォルトの起動アプリケーションのオブジェクトを作成します。後は、他のコンポーネントは、グローバルコンテキストを通じてオブジェクトにアクセスすることができますが、アプリケーションがシステムによって定義され、我々は、コードを変更することはできません。幸いなことに、我々はアプリケーションクラスを拡張することができますので、Androidのシステムは、我々はアプリケーションオブジェクトを作成するカスタムアプリケーションのクラスを使用しています。

最初のステップ:カスタムアプリケーションのクラスは、基本クラスを継承します

public class MyApplication extends Application {
}

ステップ2:mainiftestファイル、name属性を追加します

プログラムの実行は、アプリケーションが私たちを見て、作成されたオブジェクトと、そのクラスにMyApplicationの私たち自身の定義があります

4.Applicationライフサイクル

ライフサイクルApplicationオブジェクトのライフサイクルは、プログラムのライフサイクルに相当し、プログラム全体の最長です。活動は、お互いにスイッチしても意味がありませんが、Applicationオブジェクトは同じです。

5.Applicationオブジェクトのコールバック関数

Applicationオブジェクトは、Androidのシステム管理で、彼はコールバック関数のUIスレッドに実行し、処理はメインの方法のうち、メインスレッドで実行帰ってきました


public class MyApplication extends Application {
    public static  final String TAG ="main-app";
    //初始回调方法
    @Override
    public void onCreate() {
        super.onCreate();
        Log.d(TAG, "onCreate: "+Thread.currentThread());
    }
    //系统配置发生变更的时候,比如语言发生变化,屏幕发生切换等,onConfigurationChanged会被调用,
    // newConfig是新的配置信息

    @Override
    public void onConfigurationChanged(@NonNull Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        Log.d(TAG, "onConfigurationChanged: "+"newConfig"+newConfig);
    }

    //app内存低的时候回调
    @Override
    public void onLowMemory() {
        super.onLowMemory();
    }
}

オブジェクト6.Applicationの役割

アプリケーションがあるため、単一の場合のグローバルなので、オブジェクトは異なるアクティビティ、サービス内の同じオブジェクトを取得します。操作をキャッシュデータ転送、データ共有とデータ:これは、アプリケーションの数、などによって行うことができます。以下のように、どのような私は場所での応答を設定するカスタムアプリケーションクラスの変数を定義、またはローカル応答を得ることができます

public class MyApplication extends Application {
  

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    } 

}

7.比較応用静的単一の共有データと共有データオブジェクト

私たちは、別のクラスを定義します

public class App {

    private static App singleton;

    private String test;

    public static App getInstance(){
        return singleton;
    }

    public String getTest() {
          return test;
    }

    public void setTest(String test) {
       this.test = test;
    }
}

このように、我々はまた、この単一のクラスデータの共有、アプリケーションを介して適用し、静的単一のモジュラー良く、アプリケーション・コンテキストを比較するため、リソースへの能力と同等のアクセス権を持っているだけでなく、別の受け入れコンテキストパラメータを介してアクセスすることができリソース、アプリケーションのライフサイクルコールバックと完全にAndroidのシステムによって制御されるが、我々が介入することはできませんが、別々のより柔軟な使用は、単一の列を使用することをお勧めします。

おすすめ

転載: www.cnblogs.com/javayihao/p/11882188.html