Android中Application的意义及使用方法
阅读原文时间:2023年07月08日阅读:2

首先,在一个Android程序中,有且只有一个Application对象,在程序启动的时候,首先执行Application的onCreate方法,这是一个Android应用的入口,在开发中,我们常常自定义一个MyApplication用来执行某些操作。由于在一个程序中,有且只有一个Application对象,所以我们可以使用单例设计模式,(这句话是错误的!因为单例模式需要把构造函数私有,但是Application的构造函数是不能私有的,所以不能使用单例模式,其实也没有必要这样做)(http://www.cnblogs.com/oversea201405/p/3749546.html

Application的使用:

1.写一个自定义Application类,继承自Application。GoogleMarketApplication.java

package com.example.rgd.googlemarket.globe;

import android.app.Application;
import android.content.Context;
import android.os.Handler;

/**
* Created by rgd on 2017/2/16.
*/

public class GoogleMarketApplication extends Application {

/\*\*  
 \* 自定义application, 进行全局初始化  
 \*/  
private static Context context;  
private static Handler handler;  
private static int mainThreadID;

@Override  
public void onCreate() {  
    super.onCreate();  
    context = getApplicationContext();  
    handler = new Handler();  
    mainThreadID = android.os.Process.myTid();//主线程ID  
}

public static Context getContext() {  
    return context;  
}

public static Handler getHandler() {  
    return handler;  
}

public static int getMainThreadID() {  
    return mainThreadID;  
}

}

2.接下来需要告知系统,当程序启动的时候应该初始化GoogleMarketApplication,而不是默认的APPApplication类。这一步需要在 Android Manifest.xml中配置


<application  
    android:allowBackup="true"  
    android:icon="@mipmap/ic\_launcher"  
    android:label="谷歌电子市场"  
    android:name=".globe.GoogleMarketApplication"//此为配置内容  
    android:supportsRtl="true"  
    android:theme="@style/Theme.AppCompat.Light">  
    <activity android:name=".ui.activity.MainActivity">  
        <intent-filter>  
            <action android:name="android.intent.action.MAIN" />

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