簡體   English   中英

具有可擴展服務的Android庫模塊

[英]Android library module with extendable service

我需要開發一個具有服務組件的android庫。 服務要求是:

  • 作為啟動服務(始終啟動)
  • 必要時由警報服務啟動並重新啟動(庫中的其他服務)
  • 從系統啟動開始(BOOT_COMPLETED)
  • 提供訂閱某些服務事件的方式(應該在服務的上下文中執行,我的意思也在后台)

該服務的目的是為任何客戶端(Android應用程序)提供訂閱某些應該在后台執行的事件的能力。 相當於擴展客戶端即使在后台也應該收到通知的限制(即使客戶端未啟動)我可以將其視為服務的擴展(在客戶端應用程序的Manifest上重新配置的派生服務)。

實現目標的最恰當方法是什么? 基本服務應該如何與客戶端擴展進行通信?

因此,第一個客戶端必須將此服務添加到他們的AndroidManifest.xml 然后,客戶端將根據您的需要從庫中調用一些將啟動服務或警報服務的方法。

通信取決於您要從服務發送到客戶端應用程序的數據。 如果它只是一個通知,那么最好的方法是使用BroadcastReceiver 如果您在AndroidManifest.xml注冊接收器,即使應用程序未啟動,它也會收到意圖。

如果要發送大量對象或在服務上調用某些方法,可以使用ServiceConnection和binder。

例如,即使客戶端未啟動,您也需要客戶端從您的服務接收List<Model> 您在AndroidManifest.xml聲明了一個BroadcastReceiver ,它將根據其intent過濾器接收一些intent。 然后通過ServiceConnection綁定到您的服務並傳遞回調對象。 之后,在服務中啟動后台線程以加載數據。 完成后,您將調用回調方法,您的客戶端應用程序將接收數據。

不確定我是否回答了你的問題,因為它有點抽象。

暫無
暫無

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

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