一, Activity基本概念
Activity是Android的四大組件之一,它是一種可以包含用戶界面的組件,主要用于和用戶進(jìn)行交互,比如打電話,照相,發(fā)送郵件,或者顯示一個地圖!Activity用于顯示用戶界面,用戶通過Activity交互完成相關(guān)操作 , 一個App允許有多個Activity。
二, Activity的生命周期
1.(http://www.runoob.com/w3cnote/android-tutorial-activity.html)這是來自于菜鳥教程上的一張圖,十分形象的展現(xiàn)了Activity的生命周期。

2. Activity的生命周期主要可以通過以下函數(shù)控制
public class Activity extends ApplicationContext {
protected void onCreate(Bundle icicle);
protected void onStart();
protected void onRestart();
protected void onResume();
protected void onFreeze(Bundle outIcicle);
protected void onPause();
protected void onStop();
protected void onDestroy();
}
onCreate(Bundle) 函數(shù)是你進(jìn)行初始化的地方,這個也是執(zhí)行
setContentView(View)函數(shù)的地方,setContentView(View)函數(shù)可以傳入一個由XML
編制的UI界面,可以使UI和具體實(shí)現(xiàn)完全分離。
onPause()函數(shù)是處理用戶離開當(dāng)前 Activity 的地方。更重要的是,任何在當(dāng)前
Activity中的任何改變都要在這個函數(shù)中提交。
3. Activity有四種狀態(tài):
活動狀態(tài),當(dāng)Activity處于Stack(棧)頂時,就是手機(jī)當(dāng)前的現(xiàn)實(shí)屏幕,這是 Activity就
處于activity或者運(yùn)行狀態(tài)。
運(yùn)行但是失去焦點(diǎn),當(dāng)Activity還處于運(yùn)行狀態(tài)時,但是屏幕是有另外一個Activity
處于文檔處于焦點(diǎn)狀態(tài),當(dāng)前的Activity就處于pause。
停止,當(dāng)Activity被另一個Activity完全覆蓋的時候,就被停止了,其實(shí)就是雖然在
運(yùn)行,但是用戶卻看不見。
結(jié)束,當(dāng)Activity處于pause或者stop時,系統(tǒng)可以結(jié)束 Activity,回收資源,這
是Activity就是處于結(jié)束狀態(tài)了。
處于結(jié)束狀態(tài)的是Activity,如果要使用戶可見,只要重啟才可以。
三, 啟動Activity的方式
1.顯式啟動:通過包名來啟動
startActivity(newIntent(當(dāng)前Act.this,要啟動的Act.class));
2.隱式啟動:通過Intent-filter的Action,Category或data來實(shí)現(xiàn)
這個是通過Intent的intent-filter**來實(shí)現(xiàn)的
3. 另外還有一個直接通過包名啟動apk的:
Intentintent=getPackageManager().getLaunchIntentForPackage("類名");if(intent!=null)startActivity(intent);
四,系統(tǒng)提供的常見Activity
1.撥打電話
Uriuri=Uri.parse("tel:10086");Intentintent=newIntent(Intent.ACTION_DIAL,uri);startActivity(intent);
2.發(fā)送短信
Uriuri=Uri.parse("smsto:10086");Intentintent=newIntent(Intent.ACTION_SENDTO,uri);intent.putExtra("sms_body","Hello");startActivity(intent);
3.打開瀏覽器
Uriuri=Uri.parse("http://www.baidu.com");Intentintent=newIntent(Intent.ACTION_VIEW,uri);startActivity(intent);
4.顯示地圖:
Uriuri=Uri.parse("geo:39.9,116.3");Intentintent=newIntent(Intent.ACTION_VIEW,uri);startActivity(intent);
5.打開攝像頭拍照
打開拍照程序Intentintent=newIntent(MediaStore.ACTION_IMAGE_CAPTURE);startActivityForResult(intent,0);
取出照片數(shù)據(jù)
Bundleextras=intent.getExtras();Bitmapbitmap=(Bitmap)extras.get("data");