保持 Android Qt 應用在後台運行

太極拳

我已經為我的家創建了一個門鈴系統(服務器客戶端),它通過 MQTT 發布/訂閱工作,以了解何時有人按門鈴。它工作得很好,但是在我的客戶端中,MQTT 連接不斷關閉,即使在設置_client->setAutoKeepAlive(true).

此外,我想知道是否有人可以給我一個關於如何設置應用程序以在後台繼續運行的提示。到目前為止,我發現我可以在我的 AndroidManifest.xml 中設置持久性屬性,但是我能做的就是讓我的應用程序一直在後台運行,即使它被意外關閉?

我的問題:

  1. 如何防止QMqttClient自動斷開連接 - 或者:如果連接丟失,我如何自動重新連接?
  2. 如何防止 Qt Android 應用程序被殺死?
亞歷克斯199382

您可以使用該服務盡可能避免程序破壞。

Service 是一個應用程序組件,可以在後台執行長時間運行的操作。它不提供用戶界面。一旦啟動,服務可能會繼續運行一段時間,即使在用戶切換到另一個應用程序之後也是如此。此外,組件可以綁定到服務以與其交互,甚至執行進程間通信 (IPC)。例如,服務可以在後台處理網絡事務、播放音樂、執行文件 I/O 或與內容提供商交互。

Android 系統僅在內存不足時停止服務,並且必須為具有用戶焦點的活動恢復系統資源。如果服務綁定到一個以用戶為焦點的活動,那麼它被殺死的可能性就較小;如果服務被聲明為在前台運行,它很少被殺死。如果服務已啟動並長時間運行,系統會隨著時間的推移降低其在後台任務列表中的位置,並且該服務非常容易被殺死——如果您的服務已啟動,您必須將其設計為優雅地處理由系統。

https://developer.android.com/guide/components/services

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章