新聞中心
先定義一個Application

站在用戶的角度思考問題,與客戶深入溝通,找到屯溪網(wǎng)站設計與屯溪網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名與空間、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務覆蓋屯溪地區(qū)。
[[74707]]
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();
}
}[[74707]]
主要Activity:
[[74707]]
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);
}
}[[74707]]
AndroidManifest.xml:
[[74707]]
[[74707]]
這里我們自定義了一個Application,所以必須指定AndroidManifest.xml中application的android:name屬性(默認是android.app.Application)。
輸出結果:
"ApplicationActivity","onCreate" "MainActivity","onCreate" "MainActivity","小西山子" "ApplicationActivity","onConfigurationChanged"
退出之后打印結果:
"MainActivity","onDestroy"
從模擬器再次開啟應用(沒有再次編譯)之后,打印結果
"MainActivity","onCreate" "MainActivity","小西山子"
所以后退的時候并沒有關閉application,要強制關閉application,可以在MainActivity的onDestroy中調用System.exit(0)
@Override
public void onDestroy(){
Log.v("MainActivity","onDestroy");
super.onDestroy();
System.exit(0);
}這樣就完全退出程序了。
回到application的問題上來,顯然,application的onCreate在activity的onCreate之前執(zhí)行了,所以整個應用的最初入口是這個方法。
onCreate作用說明:
[[74707]]
/**
* 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().
*/[[74707]]
可以認為Activity,service以及其他的組件共同構成了一個application的環(huán)境,因此application中可以共享或者初始化一些全局變量,比如地圖(百度地圖demo就是這么做的)。
注:eclipse查看源碼的方法:
下載android版本對應的源碼【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為剛才解壓的源碼目錄就行了
一個示例(我下載的源碼放在/usr/local/android-sdk-linux/platforms/android-8/source目錄中,所以Pkg.SourceUrl=sources):
[[74707]]
### 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
[[74707]]
【編輯推薦】
- 通過Titanium將Metro UI移植到iOS/Android上
- Titanium中Android模塊開發(fā):@Kroll注解詳解
- tanium中Android模塊開發(fā):移植到1.8版本上
網(wǎng)站名稱:【記錄】Android中的Application
文章分享:http://fisionsoft.com.cn/article/djcgosg.html


咨詢
建站咨詢
