日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android中的一些基础知识(二)

發(fā)布時間:2023/12/10 Android 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android中的一些基础知识(二) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

這幾天在回顧Android的基礎(chǔ)知識,就把一些常見的知識點整理一下,以后忘了也可以翻出來看一看。

? ?

  • 簡單介紹一下Activity的生命周期?
    API文檔中對生命周期回調(diào)的函數(shù)描述的很詳細,這里我只是翻譯了一下。
    • onCreate:當Activity第一次被創(chuàng)建的時候調(diào)運。應該在這個回調(diào)函數(shù)中做所有的初始化操作,比如:創(chuàng)建View,給lists綁定數(shù)據(jù)等。在這個函數(shù)執(zhí)行完后,通常會調(diào)運onStart方法。Always followed by onStart()(這句就不用翻譯了吧)
    • onRestart:當Activitystop后,有重新啟動的時候調(diào)運。Always followed by onStart()(這句就不用翻譯了吧)
    • onStart:當Activity對用戶可見之前調(diào)運。當Activity要顯示到前臺(對用戶可見)時,Followed by onResume();當Activity要隱藏時,Followed by onStop()
    • onResume:當Activity開始用用戶交互的時候回調(diào)此方法。此時這個ActivityActivity棧的頂端。Always followed by onPause().
    • onPause:當系統(tǒng)準備打開另一個Activity的時調(diào)用。此方法通常被用來保存當前的數(shù)據(jù)、停止動畫、一些消耗cpu的操作等。并且應該處理的很及時。
    • onStop:當Activity對用戶不可見的時候調(diào)運。
    • onDestroy:在Activity被銷毀之前調(diào)運。
      Activity
      的這幾個生命周期函數(shù)是成對出現(xiàn)的:onCreateonDestroyonStartonStopActivityView已被創(chuàng)建,但對用戶不可見),onResumeonPauseActivity對用戶仍然可見)。

? ?

  • 如果Activity A正在運行,現(xiàn)在打開Activity BActivity AB的生命周期方法的執(zhí)行順序是怎樣的??

Android API中是這樣onPause方法的:

Called when the system is about to start resuming another activity.

它是說當系統(tǒng)準備打開另一個Activity的時候調(diào)用onPause方法。因此,此過程應該是這樣的:

通過運行程序,打印log,也可以驗證這個的結(jié)論,log截圖如下:?

  • 兩個Activity之間怎么傳遞數(shù)據(jù)?
    基本的數(shù)據(jù)可以通過IntentputExtra()來傳遞,如果是其他數(shù)據(jù)類型,可以通過IntentputExtras()來傳遞,此時改函數(shù)里需要傳遞一個Bundle類型的數(shù)據(jù),Bundle可以通過如下兩種方式來創(chuàng)建

       

1 Bundle bundle=new Bundle(); 2 bundle.putSerializable("data",obj);

或者

1 Bundle bundle=new Bundle(); 2 bundle.putParcelable("data",obj);

其中 obj分別需要繼承自Serializable或者Parcelable。這里說一下Serializable和Parcelable是區(qū)別。Serializable是Java中的,它是將數(shù)據(jù)以二進制的形式寫入的文件中來保存的,需要時就從文件中讀取。而Parcelable是Android中獨有的,它是將數(shù)據(jù)寫入到內(nèi)存中,用的時候直接從內(nèi)存中度取,因此效率較高,但是Parcelable不能放較大的數(shù)據(jù),因為這樣會導致OOM。

    描述一下Service的生命周期、啟動方式及區(qū)別、如何停止Service?

  • Service的生命周期中被調(diào)用的方法有:onCreateonStartonDestroyonBindonUnbind,顯然比Activity的少許多。?
    Service
    的啟動方式有兩種:

    • 通過startService?
      Service
      會經(jīng)過onCreateonStart,然后運行,在調(diào)用stopService時,會回調(diào)onDestroy方法,停止Service。如果此種情況下打開ServiceActivity退出前不調(diào)運stopService,次Service會一直運行,直至被系統(tǒng)回收(當系統(tǒng)內(nèi)存不夠時)。
    • 通過bindService?
      Service
      會經(jīng)過onCreateonBind,然后運行,在調(diào)用unBindService時,會回調(diào)onDestroy方法,停止Service。如果此種情況下打開的Service會和打開它的Activity綁定在一起,Activity銷毀,Service也被銷毀。

    注:一個Service只會被創(chuàng)建一次,當它執(zhí)行完onCreate方法后,調(diào)運再startService,只會執(zhí)行onStart方法,調(diào)運再bindService,只會執(zhí)行onBind方法。?
    startService只能調(diào)運stopService來停止Service,被bindService只能調(diào)運unBindService來停止Service。同時調(diào)運了startbindService則分別需要調(diào)運stopServiceunBindService來停止Service。當然,由于系統(tǒng)內(nèi)存不夠,Service被回收的情況例外。

    ?

轉(zhuǎn)載于:https://www.cnblogs.com/yxx123/p/5272832.html

總結(jié)

以上是生活随笔為你收集整理的Android中的一些基础知识(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。