国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何在Android 12中運行WorkManager

谷歌開發者 ? 來源:Android開發者 ? 作者:Android ? 2021-10-28 11:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Android 12 (API 級別為 31) 引入了前臺服務啟動限制。除少部分特殊場景外,如果您的應用的 targetSdkVersion 是 Android 12 或者更高 API 級別的話,應用在后臺運行時將不能再啟動前臺服務。這意味著,如果應用當前狀態不符合后臺啟動服務的條件,調用 setForeground 時可能會拋出異常。

前臺服務啟動限制

https://developer.android.google.cn/about/versions/12/foreground-services

特殊場景

https://developer.android.google.cn/guide/components/foreground-services#background-start-restriction-exemptions

setForeground

https://developer.android.google.cn/reference/androidx/work/ListenableWorker#setForegroundAsync(androidx.work.ForegroundInfo)

異常

https://developer.android.google.cn/reference/android/app/ForegroundServiceStartNotAllowedException

因此,我們在 WorkManager 2.7 中做出了部分改進,使得應用在遵守后臺限制的同時可以輕松地安排重要任務。通過加急任務,應用可以輕松地運行耗時短且高優先級的任務,例如發送一條聊天信息或者往社交網絡上傳一張圖片。推薦使用加急任務來啟動需要立即執行且即使用戶將應用放至后臺也能繼續執行的任務。

加急任務

https://developer.android.google.cn/about/versions/12/foreground-services#expedited-jobs

如需設置加急任務,可通過 WorkRequest 的 Builder 對象調用 setExpedited() 方法:

val request = OneTimeWorkRequestBuilder《HighPriorityWorker》() .setExpedited(OutOfQuotaPolicy.RUN_AS_NON_EXPEDITED_WORK_REQUEST) .build()WorkManager.getInstance(context).enqueue(request)

通過調用 setExpedited() 告訴框架該任務是重要的并且比其他任務具有更高的優先級。請注意,我們在調用 setExpedited() 方法時傳入了 OutOfQuotaPolicy 參數。加急任務受基于應用待機群組 (App Standby Buckets) 的配額限制,當您的應用嘗試在超出配額的情況下執行加急任務時,WorkManager 會根據 OutOfQuotaPolicy 參數做出相應的行為: 完全放棄加急任務請求 (DROP_WORK_REQUEST),或者將該加急任務降級至普通任務 (RUN_AS_NON_EXPEDITED_WORK_REQUEST)。加急任務很重要,但并不意味著它可以一直執行,您需要將配額視為執行加急任務的時間限制。

OutOfQuotaPolicy

https://developer.android.google.cn/reference/androidx/work/OutOfQuotaPolicy

應用待機群組 (App Standby Buckets)

https://developer.android.google.cn/topic/performance/appstandby

WorkManager 2.7 是向后兼容的,可以在 Android 12 之前的系統上運行。當在 Android 11 或之前版本的系統上調用 setExpedited() 時,WorkManager 將默認使用前臺服務代替加急任務。

想了解 WorkManager 中 setExpedited() API 的實戰,請參閱官方文檔:

WorkManager 示例

https://github.com/android/architecture-components-samples/tree/android-s/WorkManagerSample

加急任務

https://developer.android.google.cn/topic/libraries/architecture/workmanager/how-to/define-work#expedited-jobs

您可以在官方發布說明中查看 WorkManager 每個版本中變更及優化的詳細列表,以及 WorkManager 2.6 和 WorkManager 2.7 的發布說明。

WorkManager 2.6

https://developer.android.google.cn/jetpack/androidx/releases/work#2.6.0

WorkManager 2.7

https://developer.android.google.cn/jetpack/androidx/releases/work#2.7.0

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Android
    +關注

    關注

    12

    文章

    4026

    瀏覽量

    133983
  • 服務器
    +關注

    關注

    14

    文章

    10253

    瀏覽量

    91482

原文標題:在 Android 12 中使用 WorkManager

文章出處:【微信號:Google_Developers,微信公眾號:谷歌開發者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    何在DGX Spark上運行NVIDIA Omniverse

    首先感謝 Vigor 同學第一時間的分享,以下是具體如何在 DGX Spark 上運行 Omniverse 的方法。
    的頭像 發表于 12-17 10:13 ?614次閱讀
    如<b class='flag-5'>何在</b>DGX Spark上<b class='flag-5'>運行</b>NVIDIA Omniverse

    何在 buildroot 的 rootfs 顯示當前目錄?

    何在 buildroot 的 rootfs 顯示當前目錄?
    發表于 09-03 07:02

    何在裸機環境運行KleidiAI微內核

    探索如何在裸機環境運行 KleidiAI 內核,并通過測試多款 C/C++ 編譯器,以確定如何能更高效地生成代碼。
    的頭像 發表于 08-08 15:16 ?3829次閱讀
    如<b class='flag-5'>何在</b>裸機環境<b class='flag-5'>中</b><b class='flag-5'>運行</b>KleidiAI微內核

    Android Studio的Gemini全面支持Dart和Flutter開發

    Android Studio 創建 Android 應用的 Flutter 開發者將迎來一次重大的飛躍: Android Studio
    的頭像 發表于 08-06 13:52 ?1339次閱讀
    <b class='flag-5'>Android</b> Studio<b class='flag-5'>中</b>的Gemini全面支持Dart和Flutter開發

    何在樹莓派上安裝并運行 Arduino 集成開發環境!

    ,我們將介紹如何在樹莓派上安裝并運行ArduinoIDE。所需物品要在樹莓派上運行ArduinoIDE,你需要以下組件:配備適當電源的樹莓派4開發板HDMI顯示器或電
    的頭像 發表于 07-01 17:41 ?4353次閱讀
    如<b class='flag-5'>何在</b>樹莓派上安裝并<b class='flag-5'>運行</b> Arduino 集成開發環境!

    何在k230上運行OpenCV的代碼?

    何在k230上運行OpenCV的代碼
    發表于 06-17 06:06

    何在Android設備上安裝Cyusb3014芯片驅動?

    1.如何在Android設備上安裝Cyusb3014芯片驅動? 我們在 Windows 上有 FX3 驅動程序 SDK。 2.如何在Android系統上下載固件到芯片中?
    發表于 05-15 07:23

    何在i.mx8mq的android13上啟用Widevine DRM?

    /widevine 文件夾。 2. Android 13 顯示不支持。 Android 13 沒有 vendor/widevine 文件夾。 那么,如何在
    發表于 04-11 06:44

    多顯示器在運行Android Automotive 8 i.MX Automotive 13.0.0 1.1.0系統的1.1.0 EVK無法正常工作怎么解決?

    我們在 imx8 QuadXPlus EVK 運行 Android Automotive 13.0.0 1.1.0 映像。我們閃現的圖像是Android 13 1.1.0 圖像(超鏈
    發表于 04-10 06:02

    如何基于Android 14在i.MX95 EVK上運行Deepseek-R1-1.5B和性能

    本文檔總結了如何基于 Android 14 在 i.MX95 EVK 上運行 Deepseek-R1-1.5B 和性能。 1. Install Android 14 on i.MX95 您可以按照
    發表于 04-04 06:59

    【技術案例】Android in Docker

    的資源利用,廣泛用于開發、測試和生產環境AndroidinDocker介紹宿主機系統通過docker運行Android容器。利用doc
    的頭像 發表于 04-02 16:33 ?1756次閱讀
    【技術案例】<b class='flag-5'>Android</b> in Docker

    何在Simulink啟用ADC校準?

    何在 Simulink 啟用 ADC 校準? V4.2.0 產品發布報告指出,它在塊可用。但我在 ADC 配置塊找不到任何選項。
    發表于 03-31 07:50

    Android 16有哪些變更

    全球范圍內有超過 30 億臺 Android 設備正在使用,這使得 Android 生態系統比以往任何時候都更加活躍。Android 移動應用能夠在手機、可折疊設備、平板電腦、Chr
    的頭像 發表于 03-27 10:18 ?1871次閱讀

    何在 樹莓派 上編寫和運行 C 語言程序?

    在本教程,我將討論C編程語言是什么,C編程的用途,以及如何在RaspberryPi上編寫和運行C程序。本文的目的是為您介紹在RaspberryPi上進行C編程的基礎知識。如果您想深入了解C編程
    的頭像 發表于 03-25 09:28 ?1155次閱讀
    如<b class='flag-5'>何在</b> 樹莓派 上編寫和<b class='flag-5'>運行</b> C 語言程序?

    零基礎入門:如何在樹莓派上編寫和運行Python程序?

    在這篇文章,我將為你簡要介紹Python程序是什么、Python程序可以用來做什么,以及如何在RaspberryPi上編寫和運行一個簡單的Python程序。什么是Python程序?Python
    的頭像 發表于 03-25 09:27 ?2032次閱讀
    零基礎入門:如<b class='flag-5'>何在</b>樹莓派上編寫和<b class='flag-5'>運行</b>Python程序?