日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
在多進(jìn)程應(yīng)用中使用WorkManager

 :memo: 最近發(fā)布的 WorkManager 2.5.0 更適用于在多進(jìn)程環(huán)境中使用,并提供了多項(xiàng)穩(wěn)定性改進(jìn)。

目前創(chuàng)新互聯(lián)已為上1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、嶗山網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

因此,如果您的某款應(yīng)用管理著多個(gè)進(jìn)程,并需要一種穩(wěn)健的方式來(lái)管理后臺(tái)工作 (不再出現(xiàn)初始化錯(cuò)誤 ),那么此版本便是您的首選。

您需要對(duì)代碼進(jìn)行幾處更改,請(qǐng)繼續(xù)閱讀以了解更多內(nèi)容。

在本文末尾,我還將列出此版本 WorkManager 庫(kù)中的一些其他行為變更和新增內(nèi)容。

隆重推出: work-multiprocess

這一全新的多進(jìn)程工件通過(guò)將作業(yè)調(diào)度統(tǒng)一為單個(gè)進(jìn)程,從而帶來(lái)性能的提升。要開(kāi)始使用此工件,請(qǐng)將其添加到您的應(yīng)用。

 
 
 
 
  1. Implementation "Androidx.work:work-multiprocess:2.5.0" 

您現(xiàn)在可以 選擇 WorkManager 用于將 WorkRequest 加入隊(duì)列的指定進(jìn)程,并運(yùn)行其進(jìn)程中調(diào)度程序。

  • 選擇

    hhttps://developer.android.google.cn/topic/libraries/architecture/workmanager/advanced/custom-configuration

使用 Configuration.Provider 的配置如下所示。

 
 
 
 
  1. class MyApplication() : Application(), Configuration.Provider {  override fun getWorkManagerConfiguration() = 
  2.     Configuration.Builder() 
  3.       .setProcessName("com.example:remote") 
  4.       .build() 

注意: 您需要傳遞完全限定的進(jìn)程名稱作為  setProcessName 的參數(shù),該名稱由您的應(yīng)用包名稱,后跟英文冒號(hào)和主機(jī)的進(jìn)程名稱組成,例如  com.example:remote 。

使用 work-multiprocess 時(shí),您需要使用 RemoteWorkManager (而非 WorkManager ) 來(lái)管理您的工作請(qǐng)求。 RemoteWorkManager 將始終使用指定的進(jìn)程將您的工作加入隊(duì)列。這可確保您不會(huì)在調(diào)用進(jìn)程中意外初始化新的 WorkManager。進(jìn)程中調(diào)度程序也會(huì)在指定的同一進(jìn)程中運(yùn)行。

  • RemoteWorkManager

    https://developer.android.google.cn/reference/androidx/work/multiprocess/RemoteWorkManager

優(yōu)勢(shì)

按照上述方法配置 WorkManager 并使用 RemoteWorkManager 調(diào)度作業(yè)時(shí),您的工作會(huì)在多進(jìn)程應(yīng)用中得到更快速、更可靠的管理。這是因?yàn)?SQLite 爭(zhēng)用 情況會(huì)大大減少 (因?yàn)槲覀儾辉僖蕾囉谝晕募榛A(chǔ)的鎖定),且不再需要跨進(jìn)程的作業(yè)協(xié)調(diào),因?yàn)槟膽?yīng)用僅會(huì)在您指定的進(jìn)程中運(yùn)行單個(gè) WorkManager 實(shí)例。

  • 爭(zhēng)用

    https://en.wikipedia.org/wiki/Resource_contention

行為變更 :twisted_rightwards_arrows:

作業(yè)協(xié)調(diào)

之前,當(dāng) ActivityManager 無(wú)法實(shí)例化 JobService 以啟動(dòng)作業(yè)時(shí),該作業(yè)將因?yàn)槠脚_(tái)中的底層問(wèn)題而被靜默刪除。WorkManager 現(xiàn)在可確保通過(guò)協(xié)調(diào) WorkRequest 對(duì)象與作業(yè)創(chuàng)建 "應(yīng)用" 實(shí)例時(shí),每個(gè) WorkRequest 都會(huì)有一個(gè)后備調(diào)度程序作業(yè)。

限制內(nèi)部數(shù)據(jù)庫(kù)增長(zhǎng)

我們發(fā)現(xiàn)應(yīng)用崩潰的原因之一是設(shè)備存儲(chǔ)空間不足。這種情況主要發(fā)生在存儲(chǔ)空間本來(lái)就很少的設(shè)備上。但是,當(dāng)應(yīng)用調(diào)度 大量 工作時(shí),導(dǎo)致設(shè)備存儲(chǔ)空間不足的部分原因在于 WorkManager。

默認(rèn)情況下,內(nèi)部的 WorkManager 數(shù)據(jù)庫(kù)會(huì)將已完成作業(yè)的記錄保留 7 天。而現(xiàn)在,這個(gè)期限已減少至 1 天,大大降低了數(shù)據(jù)庫(kù)的大小。

我們縮短了緩沖區(qū)持續(xù)時(shí)間,這樣您就能借助 keepResultsForAtLeast() API 控制作業(yè)應(yīng)被保留的時(shí)長(zhǎng)。

全新測(cè)試 API :sparkles:

如果您將 ListenableFuture 和 WorkManager 配合使用,測(cè)試工作會(huì)變得更輕松 — TestListenableWorkerBuilder Kotlin 擴(kuò)展程序現(xiàn)在可以接收任何類擴(kuò)展 ListenableWorker ,從而在測(cè)試過(guò)程中為您提供更高的靈活性。

問(wèn)題修復(fù) :bug:

除了新增的功能,此版本還包含多個(gè)錯(cuò)誤修復(fù),以提高 WorkManager 的穩(wěn)定性、可靠性和性能。您可以在 版本說(shuō)明 中查看所有更改以及修復(fù)的錯(cuò)誤。

  • 版本說(shuō)明

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

如何改進(jìn) WorkManager

通過(guò) GitHub 向 WorkManager 貢獻(xiàn)內(nèi)容 :woman:?:computer:

WorkManager 以及其他幾個(gè) Jetpack 庫(kù)都接受通過(guò) GitHub 貢獻(xiàn)的內(nèi)容。

Alan Viverette 撰寫了 一篇關(guān)于整個(gè)流程的 詳盡博文 。

  • Alan Viverette

    https://medium.com/@alan.viverette

  • 詳盡博文

    https://medium.com/androiddevelopers/introducing-jetpack-on-github-c2c9f12e62a9

遇到問(wèn)題時(shí)請(qǐng)告訴我們 :memo:

2.5.0 版本中修復(fù)的大部分錯(cuò)誤都是通過(guò) 公開(kāi)問(wèn)題跟蹤器 報(bào)告的。

  • 公開(kāi)問(wèn)題跟蹤器

    https://issuetracker.google.com/issues?q=componentid:409906

創(chuàng)建可修復(fù)問(wèn)題的最佳方式就是 創(chuàng)建一個(gè)我們可復(fù)現(xiàn)的問(wèn)題 。為幫助我們?cè)佻F(xiàn)問(wèn)題,建議您使用該 WorkManager 示例 ,或通過(guò)問(wèn)題描述提供您的示例代碼。

  • 創(chuàng)建可復(fù)現(xiàn)的問(wèn)題

    https://issuetracker.google.com/issues/new?component=409906

  • WorkManager 示例

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

是時(shí)候行動(dòng)起來(lái),并更新您應(yīng)用中使用的 WorkManager 庫(kù)了。


分享題目:在多進(jìn)程應(yīng)用中使用WorkManager
URL分享:http://www.dlmjj.cn/article/dpipohg.html