2011-09-20 71 views
1

我正在研究一組共享其基本行爲(從數據庫中挑選隨機單詞並將其組合在一起)的新穎應用程序。因爲它們基本上都是基本相同的,所以我試圖將代碼的基礎作爲某種模板來處理,結果混雜。Android將ContentProvider作爲與應用程序綁定的庫分發

當我正在進行更新時,我想讓這個項目多一點MVC,並開始考慮使用ContentProvider而不是直接的SQLiteOpenHelper。我傾向於這種方式,因爲谷歌的文檔是INCREDIBLY堅決使用它們。我的問題在命名衝突領域。

TL; DR跳過此處查看問題。

如果被安裝了兩個第三方Android應用程序(由同一開發商製造)既想使用相同的ContentProvider,而不是依賴於其他應用程序,可它們都包括ContentProvider的複印件(有相同的權限和一切)並允許同時安裝(使用可用的最高版本的ContentProvider)?

我不確定這是否可能與設置內容提供商的方式,這似乎是單一的。我無法想象Google沒有將此視爲潛在問題或所需功能。是的,可能會出現一些複雜性,但我們已經克服了地獄和其他類似命名的問題......要做正確的事情並不是那麼困難。

回答

1

我這樣傾斜,因爲谷歌的文件是不可推about的使用它們。

並非所有的Google員工都同意這一立場,更不用說像我這樣的其他schmucks了。我只使用ContentProvider在進程之間共享數據。

如果被安裝了兩個第三方Android應用程序(由同一開發商製造)既想使用相同的ContentProvider,而不是依賴於其他應用程序,可它們都包括ContentProvider的複印件(有相同的權限和一切)並允許同時安裝(使用可用的最高版本的ContentProvider)?

AFAIK,第一個ContentProvider註冊會贏,而不是最高版本。實際上,如果它試圖重新定義現有的ContentProvider,我不確定第二個應用會安裝。

此外,如果用戶卸載當前的ContentProvider,則其他應用程序將被擰緊,因爲其數據現在變爲「poof」。

+0

這就是我所期望的,但是由於我帶來的模型會帶來更多的意義(對我而言),所以我希望這樣做。我真的只是希望有一些xml設置,我沒有意識到讓應用程序共享ContentProvider的所有權。哦,好:(如果有人知道關於如何做這件事的方式,我會很高興知道。 –

相關問題