2.Android四大組件依然堅挺,這是基礎(chǔ)并且沒有改變的跡象
創(chuàng)新互聯(lián)建站是一家專業(yè)提供武夷山企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、成都做網(wǎng)站、H5技術(shù)、小程序制作等業(yè)務。10年已為武夷山眾多企業(yè)、政府機構(gòu)等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計公司優(yōu)惠進行中。Activity 服務 廣播接收器 內(nèi)容提供程序
2.1 Service ,Google也意識到存在的靈活性問題,但是由于使用廣泛,所以并不打算改變
目前使用服務的應用類型:音樂、動態(tài)壁紙、通知偵聽器、屏幕保護程序、輸入方法、無障礙功能服務等
2.2 廣播接收器
廣播接收器更常見的用途只是作為通向其他組件的通道,旨在執(zhí)行極少量的工作。例如,它可能會根據(jù)帶 JobScheduler
的事件調(diào)度 JobService
來執(zhí)行某項工作
廣播接收器作為 BroadcastReceiver
的子類實現(xiàn),并且每條廣播都作為 Intent
對象進行傳遞
JobScheduler
Note: Beginning with API30 (Build.VERSION_CODES.R), JobScheduler will throttle runaway applications. Calling schedule(android.app.job.JobInfo) and other such methods with very high frequency is indicative of an app bug and so, to make sure the system doesn't get overwhelmed, JobScheduler will begin to throttle apps that show buggy behavior, regardless of target SDK version.
2.3 內(nèi)容提供者
對系統(tǒng)而言,內(nèi)容提供程序是應用的入口點,用于發(fā)布由 URI 架構(gòu)識別的已命名數(shù)據(jù)項
3.對于組件的啟動方式
Service在 Android 5.0(API 級別 21)及更高版本中,可以使用JobScheduler 來調(diào)度,當然低版本中依然使用startService或bingService的方式操作
注意:如果您使用 Intent 來啟動 Service,請使用顯式 Intent 來確保應用的安全性。使用隱式 Intent 啟動服務存在安全隱患,因為您無法確定哪些服務將響應 Intent,且用戶無法看到哪些服務已啟動。從 Android 5.0(API 級別 21)開始,如果使用隱式 Intent 調(diào)用 bindService(),系統(tǒng)會拋出異常。請勿為您的服務聲明 Intent 過濾器。
4.版本兼容問題
如果應用包含某個功能或者設(shè)備的調(diào)用,可以在清單中進行配置
通過示例中所述的聲明,沒有相機且 Android 版本低于 2.1 的設(shè)備將無法從 Google Play 安裝您的應用。不過,您可以聲明您的應用使用相機,但并不要求必須使用。在此情況下,您的應用必須將 required
屬性設(shè)置為 false
,并在運行時檢查設(shè)備是否擁有相機,然后根據(jù)需要停用任何相機功能
參考文章:官方文檔: https://developer.android.google.cn/guide/components/fundamentals