2011-11-29 76 views
2

我正在創建一個將從互聯網上獲取數據的Android應用程序。最終,我會想要更改應用程序以從不同的(尚未確定的)Internet位置獲取類似的數據。之後甚至還有另一個位置。我想避免更改我的應用程序來考慮不同的Internet位置,因爲這很難維護。Android內容提供商和應用程序在一個APK中?

很可能有很多的選擇,但經過一番研究,這似乎是一個內容提供商可以做我想做的。它看起來像內容提供者被設計爲跨應用程序邊界公開數據。這沒關係,但我不在乎內容提供者與我的主應用程序位於不同的應用程序中。沒有其他應用程序會對我的內容提供商的數據感興趣,因此跨越應用程序邊界在這種情況下沒有幫助。

  • 是一種內容提供者是解決問題的好方法嗎?

  • 我還沒有考慮另一種選擇嗎?

  • 如果內容提供商是一個很好的解決方案,我怎麼會去包裝這兩個應用程序和內容提供商(S)到一個單一的.apk文件?

  • 這可以在Eclipse內部完成還是需要使用命令行工具?

+0

我有一系列的客戶都希望爲他們的業務定製的應用程序擁有自己獨特的數據源。維護問題是我需要保留一個源,然後選擇一個插件模塊來定製只顯示適當信息的數據。 – Mitch

回答

1

內容提供商是您的問題的一個很好的解決方案。

你只需在你的清單中聲明你的內容提供者,並且它是用你的apk構建的。如果您未將內容提供者聲明爲publi,則只有您的應用可以訪問您的數據。

的開始與內容提供商的一個很好的LIB /樣本數據DROID http://datadroid.foxykeep.com/它會做所有的東西給你。

1

如果您直接在ListView中使用數據,例如,創建內容提供者可能會有所幫助。

你也可以選擇你的應用程序中的不同的抽象,比如抽象出不同來源的新類。我並沒有真正看到使用內容提供商的理由,只是爲了讓您的應用更易於維護。

你甚至可能認爲,內容提供商,而沒有使用大部分的功能增加了更多的複雜性。

如果您確實需要一個內容提供者,您可以通過在AndroidManifest.nl中聲明它來將它作爲一個組件添加到您的主應用程序中,您可以像在平時一樣在Eclipse中開發和打包該應用程序。

+0

對,在這種情況下,內容提供商可能有一個有效的點。您只需在Eclipse中創建基本應用程序和多個內容提供程序應用程序。內容提供商應用程序只是在AndroidManifest.xml中沒有任何活動,只有內容提供者。請注意,您只能安裝一個內容提供商,因爲它使用的URI必須是唯一的。而且你需要安裝2個應用程序:base + content choice of choice。 – botteaap