1
我正在開發一個運行主線程服務的android應用程序。然後運行另一個存在於單獨的apk文件中的活動。這個apk需要能夠產生自己的服務,並與原始服務交換信息(複雜對象)。他們都共享這兩個服務,如果有幫助的話,因爲服務存在於Android庫中,這兩個apk都是參考的。有什麼辦法可以實現這個功能嗎?有什麼限制,有什麼方法可以克服。Android服務連接
我正在開發一個運行主線程服務的android應用程序。然後運行另一個存在於單獨的apk文件中的活動。這個apk需要能夠產生自己的服務,並與原始服務交換信息(複雜對象)。他們都共享這兩個服務,如果有幫助的話,因爲服務存在於Android庫中,這兩個apk都是參考的。有什麼辦法可以實現這個功能嗎?有什麼限制,有什麼方法可以克服。Android服務連接
服務2與服務1進行通信都必須由您編寫。如果通過'服務存在於一個Android庫,這兩個apk的參考'你的意思是它的Android系統服務,那麼我不認爲這是可能的,除非你重寫服務定義。
如果您正在使用android系統服務,您可以嘗試在服務1中收到一個廣播接收器,通知服務2可能發佈的所有更新。
如果應用程序1,2和1,2都是由您編寫的,那麼我不認爲這很難實現,因爲您可以使用捆綁意圖共享數據。
謝謝你的迴應。這兩項服務都是由我撰寫的。這個問題似乎是從服務2中訪問apk 1服務1。當我嘗試這個告訴我,我沒有訪問服務 '意圖gf =新意圖(); gf.setClassName(「com.MyServices」,「com.MyServices.Service1」); bindService(gf,mConnection,Context.BIND_AUTO_CREATE);' 它告訴我我沒有權限。如果我嘗試'意圖gf =新意圖(「com.MyServices.Service1」);'它只是默默地失敗。沒有嘗試會導致我的'mConnection'的'onServiceConnected'觸發。 – Dested 2011-03-14 06:01:42
既然你已經清除了這一點,讓我只是指出,我會重新考慮我的設計,如果我是你,只是因爲你想要兩個apk的相互溝通......如果用戶將卸載apk的?我不確定你想用上面的設置來達到什麼目的,但是你可以在同一個apk裏面的2種不同的服務之間交換數據。如果你還想使用不同的apk,你可以做另外一件事情:爲apk同時使用相同的包名,然後在它們之間共享一個sqlite數據庫文件(還沒試過:P) – 2011-03-14 06:46:02
apk1 isnt dependent在apk2上,只是反過來。如果apk1被卸載,將會理解apk2將不再起作用。 你說我可以在同一個apk內的兩個不同服務之間交換數據,但是如果apk1直接在apk2上啓動一個活動,我可以在兩個不同的apks之間交換數據?說實話,我不完全確定我的問題是什麼,所以我試圖確定它是否在概念上是一個問題,然後我開始深入研究一個bug。 – Dested 2011-03-14 07:07:34