Android之Activity學(xué)習(xí)

一, 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");

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容