簡體   English   中英

需要在 android 后台服務中運行任務?

[英]Need to run task in android background services?

在我的應用程序中,我正在使用ffmpeg-kit並執行一個命令,該命令使用互聯網記錄/捕獲任何stream並將其寫入設備的內部存儲。
此命令或 stream 可以運行直到用戶停止。 從這里您可以了解此任務的執行時間可以是 10 分鍾、30 分鍾甚至 1 小時或更長時間,具體取決於用戶,直到他想要停止或 stream 它自行完成。 eg:視頻結束
現在我的限制是關於這個任務,應用程序在前台和后台運行這個 FFmpeg 命令,但是當應用程序被用戶或系統殺死時不需要運行。
此任務僅在應用程序在前台或后台運行時出現並運行。

所以現在我需要專家的建議,哪些 android 服務最適合在這種情況下使用。 我遇到了其中一些...... IntentServiceJobSchedulerWorkManager

我曾想過在這里使用WorkManager ,但我的工作在這里並不持久,我也不需要在應用程序關閉時運行 FFmpeg 和記錄 stream ..所以 WorkManager 不適合這種情況。

這些都不是正確的答案。 IntentService 不是解決方案,因為后台服務會在 2 分鍾內被殺死。 JobScheduler 將具有相同的問題處理時間限制。 Workmanager 也一樣。

你想要的是前台服務。 前台服務是可以運行很長時間的服務(它們最終也會被殺死,但可以運行幾個小時)。 前台服務是使用 startForegroundService 而不是 startService 啟動的,並且需要 Service 調用 startForeground 並提供一個通知,該通知將在服務運行時出現在狀態欄中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM