[英]Android distributing SDK containing background service.
我想創建一個我可以重新分發的android SDK。 在該SDK中,它具有服務。
假設appA和appB與我的SDK集成在一起,如果appA和appB啟動服務,那么將運行2個服務還是僅運行一個?
有沒有辦法確保只能運行一項服務?
還是在SDK中分發服務不是一個好主意嗎?
在該SDK中,它具有服務。
我將其解釋為“在該SDK中,它具有一個擴展Service
的Java類,並且我希望該Service
可以手動或自動(例如,通過AAR的清單合並)注冊在應用的清單中)”。
假設appA和appB與我的SDK集成在一起,如果appA和appB啟動服務,那么將運行2個服務還是僅運行一個?
該服務將有零個,一個或兩個實例。
如果兩個開發人員都搞砸了,但未能將服務添加到清單中,則該值為零,在這種情況下它將永遠無法運行。
如果兩個開發人員都將服務添加到他們的清單並通過顯式的Intent
啟動該服務,那就是兩個。
在多種情況下,只有一種服務將運行(例如,一個開發人員搞砸了,沒有將服務添加到清單中,而另一種則使用了顯式的Intent
)。
有沒有辦法確保只能運行一項服務?
不容易。 首先,除非您同時是appA和appB的開發人員,否則這些開發人員可以執行他們想要的操作,並且他們可能不希望其他應用程序與您的服務副本進行交流(例如,出於安全原因)。 您還必須處理安裝了appA而不安裝appB的情況,或者安裝了appB而不安裝appA的情況。 您必須處理以下情況:首先同時安裝了appA和appB,他們選擇使用appA的服務,然后用戶卸載了appA,現在appB將不再有權訪問服務在appA的一部分上管理的數據內部存儲器。
還是在SDK中分發服務不是一個好主意嗎?
在JAR或AAR中分發服務本質上沒有錯。 試圖迫使多個應用程序僅使用其中一個應用程序來使用同一服務實例,這在最好的情況下是棘手的,在最壞的情況下是冒險的,因此,我將盡量避免這種要求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.