代码改变世界

[Android学习笔记]扩展application

2014-06-05 17:39  hellenism  阅读(389)  评论(0编辑  收藏  举报

扩展Application对象

每一个应用程序启动之后,都会分配一个linux用户,并且运行在一个独立的进程中。
默认情况下,一个应用程序只会运行在一个进程中(可以通过配置android:process分配到不同的进程中),没一个进程都会有一个独立的的应用程序对象.
通过自定义应用程序对象,可以在当前应用程序环境中方便的实现数据共享,而不必通过Intent把大量数据在不同的Activity中来回传递


一般步骤为:
1.自定义Application类
2.修改AnroidManifest.xml,将自定义的Application类作为该应用程序的应用程序环境对象
3.使用自定义的Application对象


ex:

1.扩展Application

/**
 * 扩展Application,定义自己的Application
 */
public class myApplication extends Application
{
    public int myData = 1000;
    
    // 定义个单例,可以在任何地方获取到应用程序环境对象 , 与在Activity中调用getApplication()一致
    private static myApplication instance;
    public static myApplication getInstance()
    {
        return instance;
    }

    @Override
    public void onCreate()
    {
        // TODO Auto-generated method stub
        // super.onCreate();
        
        instance = this;
    }
}

 

2.修改配置文件,使用自定义的Application作为应用的应用程序环境对象(<application>项中添加android:name="包.myApplication")

<application
        android:name="com.example.context.myApplication"
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.broadcastreceivertest.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.example.broadcastreceivertest.SecondActivity"
            android:label="@string/title_activity_second" >
        </activity>
    </application>