分享記錄Android學習回顧程序

基本組件
Activity
View
-
整體布局
-
AbsoluteLayout
-
ConstraintLayout
- 設備適配性強
-
LinearLayout
-
-
串列顯示
-
ListView (過時)
- 原因:開發者需要對getChildView(), getGroupView()進行性能優化,否則ListView易出現卡頓
-
RecyclerView (推薦)
- 強制使用ViewHolder管理convertView內所有子組件以獲得良好性能
-
-
進度條
- ProgressBar
-
拖動條
- SeekBar
- RatingBar
-
視圖效果
-
ViewAnimator
-
添加影片效果
-
ViewFilpper
- 控制組件切換的影片效果
-
-
-
ViewSwitcher
-
切換視圖
- ImageSwitcher
- TextSwitcher
-
-
-
系統狀態欄通知
-
NotificationManager
- 通過Manager發送Notification
-
Channel (Android 8加入)
- 統一管理通知
-
Android 9開始,
-
- 在創建MessageStyle時應使用Person為引數,可設定更豐富的資訊
- Message物件可使用setData()設定更多樣的通知資料(如圖片)
-
對話框
-
AlertDialog
- ProgressDialog
- DatePickerDialog
- TimePickerDialog
-
Service
BroadcastReceiver
ContentProvider
Intent & IntentFilter
Android事件機制
事件處理
-
基于監聽的事件處理
-
為組件系結特定的時間監聽器(Listener)
- 應用場景:
沒法基于回呼的場景 =.= - 監聽處理三物件:
- 應用場景:
-
- Event Source: 組件
- Event: 用戶操作
- Event Listener: 監聽事件源發生的事件并做出回應
-
基于回呼的事件處理
-
覆寫組件 / Activity的回呼方法
- 應用場景:
處理具有通用性的事件 - 以View為例,其回呼方法有:
onKeyDown(), onKeyLongPress(), onKeyShortCut(), onKeyUp(), onKeyTouchEvent(), onTrackballEvent()
- 應用場景:
-
回應系統設定的事件
-
Configuration類
- 獲取系統的配置資訊
量大、復雜資料處理
-
Handler訊息傳遞機制
-
主要作用
- 在新啟動的執行緒中發送訊息
- 在主執行緒(UI執行緒)中獲取、處理訊息
-
Handler、Loop、MessageQueue
-
Message:
Handler接受和處理的訊息物件 -
Looper:
每個執行緒只能擁有一個Looper,loop方法負責讀取MessageQueue中的訊息,讀到訊息后把訊息發給Handler進行處理 -
MessageQueue:
訊息佇列,先進先出管理Message物件,程式創建Looper物件時,會在它的構造器中創建MessageQueue物件 -
Handler:
發送訊息到指定的MessageQueue,即當前執行緒中必須有一個Looper物件管理MessageQueue- 保證執行緒中有Looper物件:
-
-
-
在主UI執行緒中,系統已經初始化了一個Looper物件
-
自己啟動的子執行緒,比西創建Looper物件并呼叫它的prepare()方法, prepare()方法保證每個執行緒最多只有一個Looper物件
- Handler使用步驟:
-
呼叫Looper的prepare()方法創建Looper物件
-
創建Handler的實體,重寫handleMessage()方法,該方法負責處理其他執行緒的訊息
-
呼叫Looper的loop()方法啟動Looper
簡單資料處理
-
異步任務 AsyncTask
- 處理輕量級任務
- 相較于Handler更加消耗系統資源
Activity與Fragment
Activity
-
Activity啟動
- 通過Intent啟動Activity
- 通過Bundle在Activity之間交換資料
-
Activity回呼機制
- 自由主題
UI執行緒阻塞超過20s會引發ANR (Application Not Responding)例外
解決思路:
減少UI執行緒的耗時操作,耗時的放到子執行緒運行
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/257489.html
標籤:其他
