自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

【記錄】Android中的Application

移動(dòng)開發(fā) Android
安卓中的Application。

先定義一個(gè)Application

package com.xesam;

import android.app.Application;
import android.content.res.Configuration;
import android.util.Log;

public class ApplicationActivity extends Application {
    static String name = "小西山子";
    @Override
    public void onCreate() {
        Log.v("ApplicationActivity","onCreate");
        super.onCreate();
    }
    @Override
    public void onTerminate() {
        Log.v("ApplicationActivity","onTerminate");
        super.onTerminate();
    }
    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        Log.v("ApplicationActivity","onConfigurationChanged");
        super.onConfigurationChanged(newConfig);
    }
    @Override
    public void onLowMemory() {
        Log.v("ApplicationActivity","onLowMemory");
        super.onLowMemory();
    }
}

主要Activity:

package com.xesam;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
import android.widget.TextView;

public class MainActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        Log.v("MainActivity","onCreate");
        super.onCreate(savedInstanceState);
        
        ApplicationActivity app = (ApplicationActivity)this.getApplication();
        
        LinearLayout main = new LinearLayout(this);
        main.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
        main.setOrientation(LinearLayout.VERTICAL);
        TextView tv = new TextView(this);
        tv.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
        tv.setText(app.name);
        tv.setTextColor(Color.BLUE);
        main.addView(tv);
        setContentView(main);
    }
    @Override
    public void onDestroy(){
        Log.v("MainActivity","onDestroy");
        super.onDestroy();
        //System.exit(0);
    }
}

AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.xesam"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="8" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" 
        android:name="ApplicationActivity">
        <activity
            android:name=".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>
    </application>

</manifest>

這里我們自定義了一個(gè)Application,所以必須指定AndroidManifest.xml中application的android:name屬性(默認(rèn)是android.app.Application)。

輸出結(jié)果:

"ApplicationActivity","onCreate"
"MainActivity","onCreate"
"MainActivity","小西山子"
"ApplicationActivity","onConfigurationChanged"

退出之后打印結(jié)果:

"MainActivity","onDestroy"

從模擬器再次開啟應(yīng)用(沒有再次編譯)之后,打印結(jié)果

"MainActivity","onCreate"
"MainActivity","小西山子"

所以后退的時(shí)候并沒有關(guān)閉application,要強(qiáng)制關(guān)閉application,可以在MainActivity的onDestroy中調(diào)用System.exit(0)

    @Override
    public void onDestroy(){
        Log.v("MainActivity","onDestroy");
        super.onDestroy();
        System.exit(0);
    }

這樣就完全退出程序了。

 

回到application的問題上來,顯然,application的onCreate在activity的onCreate之前執(zhí)行了,所以整個(gè)應(yīng)用的最初入口是這個(gè)方法。

onCreate作用說明:

    /**
     * Called when the application is starting, before any other application
     * objects have been created.  Implementations should be as quick as
     * possible (for example using lazy initialization of state) since the time
     * spent in this function directly impacts the performance of starting the
     * first activity, service, or receiver in a process.
     * If you override this method, be sure to call super.onCreate().
     */

可以認(rèn)為Activity,service以及其他的組件共同構(gòu)成了一個(gè)application的環(huán)境,因此application中可以共享或者初始化一些全局變量,比如地圖(百度地圖demo就是這么做的)。

 

 

注:eclipse查看源碼的方法:

下載android版本對(duì)應(yīng)的源碼【2.2版本地址:http://rgruet.free.fr/public/android-2.2-froyo-src.zip

解壓縮到 /usr/local/android-sdk-linux/platforms/android-8下,然后修改同目錄下source.properties文件中的Pkg.SourceUrl為剛才解壓的源碼目錄就行了

一個(gè)示例(我下載的源碼放在/usr/local/android-sdk-linux/platforms/android-8/source目錄中,所以Pkg.SourceUrl=sources):

### Android Tool: Source of this archive.
#Mon Apr 23 01:14:48 CST 2012
Layoutlib.Api=4
Layoutlib.Revision=0
Pkg.Desc=Android SDK Platform 2.2_r3
Archive.Arch=ANY
Platform.Version=2.2
Pkg.DescUrl=http\://developer.android.com/sdk/
Platform.MinToolsRev=8
Archive.Os=ANY
Pkg.SourceUrl=sources
Pkg.Revision=3
AndroidVersion.ApiLevel=8

【編輯推薦】

  1. 通過Titanium將Metro UI移植到iOS/Android上
  2. Titanium中Android模塊開發(fā):@Kroll注解詳解
  3. tanium中Android模塊開發(fā):移植到1.8版本上
責(zé)任編輯:冰凝兒 來源: 博客園
相關(guān)推薦

2024-12-16 13:00:00

SpringJava

2009-06-16 15:20:48

ApplicationJSP程序

2009-06-14 22:22:02

ibmdwWebSphere

2009-06-29 17:57:30

ApplicationJSP

2009-08-14 17:08:00

Android應(yīng)用程序

2011-07-07 17:30:25

iPhone Xcode

2021-11-19 17:26:11

AppApplication方法

2021-11-23 09:09:27

Applicationandroid系統(tǒng)開發(fā)

2019-11-26 14:00:58

awkLinux命令

2017-04-27 10:20:13

Android內(nèi)存優(yōu)化圖片

2010-04-28 18:25:51

Oracle數(shù)據(jù)庫(kù)

2009-06-14 16:59:16

ibmdwWebSphere

2009-06-14 17:04:02

ibmdwWebSphere

2009-09-22 12:08:45

ibmdwWebSphere

2021-09-02 09:24:14

DNSrrDNS安全工具

2010-11-11 10:53:22

SQL Server遍

2024-12-18 12:10:00

2011-03-28 10:56:12

ibmdwRational

2011-06-01 14:20:06

Android Selector

2011-04-06 16:25:47

SQL Server
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)