Android_4_Activity常用方法

Activity常用方法

只列舉Activity中常用的方法,方法的參數(shù)一一列舉,只簡(jiǎn)單說(shuō)明方法作用

在AndroidStudio中復(fù)寫(xiě)方法的快捷鍵 command + o

一. Activity生命周期方法

生命周期評(píng)價(jià)就是對(duì)某物從產(chǎn)生到消亡以及消亡后所產(chǎn)生的效應(yīng)進(jìn)行全過(guò)程的評(píng)價(jià),Activity的生命周期也就是指某個(gè)Activity從創(chuàng)建到銷毀的整個(gè)過(guò)程中,生命周期方法就是指在這個(gè)過(guò)程中所執(zhí)行的方法.
1. onCreate()
    當(dāng)Activity創(chuàng)建時(shí)執(zhí)行這個(gè)方法,也就是Activity被實(shí)例化時(shí)執(zhí)行的方法,一般會(huì)在這個(gè)方法中初始化一些成員變量
2. onRestart()
    當(dāng)Activity轉(zhuǎn)變成后臺(tái),再回來(lái)前臺(tái)時(shí)執(zhí)行,也就是當(dāng)Activity在被執(zhí)行過(guò)onStop()方法后,再回到前臺(tái)時(shí)才會(huì)執(zhí)行,這個(gè)方法里面一般做和onStart()方法做同樣的事情
3. onStart()
當(dāng)Activity成為前臺(tái)進(jìn)程時(shí)執(zhí)行這個(gè)方法,也就是打開(kāi)的頁(yè)面是當(dāng)前Activity時(shí),一般是處理一些頁(yè)面打開(kāi)才需要進(jìn)行的操作
4. onResume()
    當(dāng)Activity由不可見(jiàn)變可見(jiàn)時(shí)執(zhí)行這個(gè)方法,一般處理一些處理特效
5. onPause()
    與onResume()方法對(duì)應(yīng),當(dāng)Activity由可見(jiàn)變不可見(jiàn)時(shí)執(zhí)行這個(gè)方法,一般處理些當(dāng)Activity不可見(jiàn)時(shí)需要進(jìn)行的操作
6. onStop()
    與onStart()方法對(duì)應(yīng),當(dāng)Activity成為后臺(tái)進(jìn)程時(shí)執(zhí)行這個(gè)方法,一般處理些當(dāng)Activity不在前臺(tái)需要進(jìn)行的操作
7. onDestory()
    與onCreate()方法對(duì)應(yīng),當(dāng)Activity被銷毀時(shí)執(zhí)行,一般在這個(gè)方法中釋放資源,例如關(guān)閉流,cursor,

這七個(gè)方法的執(zhí)行順序是從上到下依次執(zhí)行的,當(dāng)需要在那個(gè)過(guò)程中做操作可以直接復(fù)寫(xiě)這個(gè)方法,并在方法中添加相應(yīng)的操作就可以了

#######創(chuàng)建一個(gè)新的Activity分別復(fù)寫(xiě)這七個(gè)方法,然后在里面分別打印log,運(yùn)行查看log

public class TestActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.e("test","onCreate");
    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.e("test","onStart");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.e("test","onRestart");
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.e("test","onResume");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.e("test","onPause");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.e("test","onStop");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.e("test","onDestroy");
    }
}

二. Activity狀態(tài)保存方法

  • onSaveInstanceState(Bundle)
  • onRestoreInstanceState(Bundle)

當(dāng)設(shè)備的配置(橫豎屏震叮、語(yǔ)言等)發(fā)生變化而使Activity自動(dòng)銷毀重建仪搔,或者Activity從前臺(tái)轉(zhuǎn)到后臺(tái)(如,按下Home鍵)的時(shí)候雇庙,Activity會(huì)調(diào)用onSaveInstanceState(Bundle)方法將當(dāng)前Activity的狀態(tài)保存到一個(gè)Bundle變量中雇初。這個(gè)Bundle變量與onCreate(Bundle)方法和onRestoreInstanceState(Bundle)中的Bundle參數(shù)是同一個(gè)域庇,也就是說(shuō)字币,后兩個(gè)方法通過(guò)傳入的Bundle參數(shù)還原Activity的狀態(tài)。

雖然Activity的狀態(tài)保存到了Bundle中一忱,但是數(shù)據(jù)卻不會(huì)自動(dòng)保存到Bundle中莲蜘。要想保存這些數(shù)據(jù)就需要在onSaveInstanceState手動(dòng)地設(shè)置一些重啟后需要的狀態(tài)數(shù)據(jù),可以直接調(diào)用該Bundle實(shí)例的putXXX方法存入額外的數(shù)據(jù)信息,然后復(fù)寫(xiě)onRestoreInstanceState或者onCreate()方法在方法的參數(shù)bundle中取出所保存的值設(shè)置到當(dāng)前的Activity中完成Activity的恢復(fù).

三. View相關(guān)方法

  • setContentView(View view)

    為Activity設(shè)置一個(gè)layout(布局),一般在onCreate()方法中調(diào)用這個(gè)方法為當(dāng)前Activity設(shè)置布局

  • findViewById(int id)

    通過(guò)id獲取當(dāng)前Activity中的控件,一般取出后需要強(qiáng)制轉(zhuǎn)換成布局中對(duì)應(yīng)的控件,然后進(jìn)行操作

四. 事件想關(guān)

  • onTouchEvent(MotionEvent event)

    當(dāng)發(fā)生屏幕點(diǎn)擊事件,當(dāng)事件被處理結(jié)束后不需要其他控件再處理這個(gè)事件時(shí),也就是這個(gè)事件已經(jīng)被消費(fèi)時(shí),返回true

  • onKeyDown(int keyCode, KeyEvent event)

    鍵盤(pán)或者按鈕被點(diǎn)擊按下時(shí)執(zhí)行,當(dāng)事件被消費(fèi)返回true

  • onKeyUp(int keyCode, KeyEvent event)

    鍵盤(pán)或按鍵被點(diǎn)擊手抬起時(shí)執(zhí)行,當(dāng)事件被消費(fèi)返回true

  • onBackPressed()

    當(dāng)點(diǎn)擊返回按鈕時(shí)執(zhí)行(系統(tǒng)的返回按鍵),當(dāng)事件被消費(fèi)返回true

  • onKeyLongPress(int keyCode, KeyEvent event)

    當(dāng)鍵盤(pán)或按鍵被找按時(shí)執(zhí)行,當(dāng)事件被消費(fèi)返回true

  • dispatchKeyEvent(KeyEvent event)

    事件會(huì)發(fā),當(dāng)按鈕點(diǎn)擊事件發(fā)生時(shí),會(huì)先執(zhí)行這個(gè)方法決定這個(gè)事件是否繼續(xù)傳遞下去

三. Activity中的其他方法

  • getLayoutInflater()

    得到一個(gè)LayoutInflater對(duì)像,這個(gè)用像用于在代碼中創(chuàng)建一個(gè)布局對(duì)象(View)

  • startActivity

    打開(kāi)一個(gè)新的Activity

  • startActivityForResult(android.content.Intent, int)

    打開(kāi)一個(gè)新的Activity并返回給當(dāng)前Activity一些信息

  • setResult(int resultCode, Intent data)

    當(dāng)調(diào)用startActivityForResult打開(kāi)一個(gè)新的Activity時(shí),在新的Activity中使用這個(gè)方法設(shè)置返回的信息

  • getSystemService(String name)
    獲取系統(tǒng)的服務(wù),可獲取的服務(wù)

      Context.WINDOW_SERVICE ("window")
      窗口管理  windowManager
      Context.LAYOUT_INFLATER_SERVICE ("layout_inflater")
      LayoutInflater
      Context.ACTIVITY_SERVICE ("activity")
      ActivityManager
      Context.POWER_SERVICE ("power")
      PowerManager
      Context.ALARM_SERVICE ("alarm")
      AlarmManager
      Context.NOTIFICATION_SERVICE ("notification")
      NotificationManager
      Context.KEYGUARD_SERVICE ("keyguard")
      KeyguardManager
      Context.LOCATION_SERVICE ("location")
      LocationManager
      Context.SEARCH_SERVICE ("search")
      SearchManager
      Context.VIBRATOR_SERVICE ("vibrator")
      Vibrator
      Context.CONNECTIVITY_SERVICE ("connection")
      ConnectivityManager
      Context.WIFI_SERVICE ("wifi")
      WifiManager 
      Context.INPUT_METHOD_SERVICE ("input_method")
      InputMethodManager
    

    可以能過(guò)系統(tǒng)對(duì)應(yīng)的服務(wù)設(shè)置系統(tǒng)功能,

  • runOnUiThread(Runnable action)

    安卓系統(tǒng)不允許子純種修改UI,同時(shí)不可以在主線程中進(jìn)行耗時(shí)操作,那么當(dāng)子線程和主線程進(jìn)行數(shù)據(jù)交互時(shí),在子線程中使用些方法把任務(wù)發(fā)回到主線程中執(zhí)行

  • getPreferences(int)

    獲取緩存對(duì)象(數(shù)據(jù)存儲(chǔ)方式中的一種)

  • getIntent()

    獲取打開(kāi)當(dāng)前Activity的Intent對(duì)象,一般打開(kāi)Activity需要攜帶數(shù)據(jù)時(shí),會(huì)把這些數(shù)據(jù)放到這個(gè)Intent中

  • getFragmentManager()

    獲取Fragment管理器對(duì)象,當(dāng)Activity中有Fragment時(shí)需要使用些對(duì)象

  • getApplication()

    獲取app的Application對(duì)象,這個(gè)對(duì)象在App被打時(shí)時(shí)創(chuàng)建,真到App被關(guān)閉結(jié)束

  • finish()

    結(jié)束當(dāng)前Activity

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末帘营,一起剝皮案震驚了整個(gè)濱河市票渠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌芬迄,老刑警劉巖问顷,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異薯鼠,居然都是意外死亡择诈,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)出皇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)羞芍,“玉大人,你說(shuō)我怎么就攤上這事郊艘『煽疲” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵纱注,是天一觀的道長(zhǎng)畏浆。 經(jīng)常有香客問(wèn)我,道長(zhǎng)狞贱,這世上最難降的妖魔是什么刻获? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮瞎嬉,結(jié)果婚禮上蝎毡,老公的妹妹穿的比我還像新娘。我一直安慰自己氧枣,他們只是感情好沐兵,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著便监,像睡著了一般扎谎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,578評(píng)論 1 305
  • 那天毁靶,我揣著相機(jī)與錄音胧奔,去河邊找鬼。 笑死老充,一個(gè)胖子當(dāng)著我的面吹牛葡盗,可吹牛的內(nèi)容都是我干的螟左。 我是一名探鬼主播啡浊,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼胶背!你這毒婦竟也來(lái)了巷嚣?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤钳吟,失蹤者是張志新(化名)和其女友劉穎廷粒,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體红且,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡坝茎,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了暇番。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嗤放。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖壁酬,靈堂內(nèi)的尸體忽然破棺而出次酌,到底是詐尸還是另有隱情,我是刑警寧澤舆乔,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布岳服,位于F島的核電站,受9級(jí)特大地震影響希俩,放射性物質(zhì)發(fā)生泄漏吊宋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一颜武、第九天 我趴在偏房一處隱蔽的房頂上張望璃搜。 院中可真熱鬧,春花似錦盒刚、人聲如沸腺劣。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)橘原。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間趾断,已是汗流浹背拒名。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留芋酌,地道東北人增显。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像脐帝,于是被迫代替她去往敵國(guó)和親同云。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容