[英]Android library module with extendable service
我需要開發一個具有服務組件的android庫。 服務要求是:
該服務的目的是為任何客戶端(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.