2014-04-25 62 views
1

我有一個問題,目前有一羣朋友正在開發一個Android應用程序。當我們到達應用程序之間的數據處理時,我們肯定選擇了ContentProvider。 但是一個人告訴我們,使用Intent打開一個Activity然後返回Activity上的數據會好得多。 setData(Bundle);方法。我不是這樣的一個好習慣,但我想知道你們的想法?ContentProvider vs活動

使用startActivityForResult(Intent)而不是ContentProvider是否真的更好?

非常感謝您

編輯

我要在此補充一個小例子:

我們在一個主要的應用程序必須使用來自其他應用程序數據的情況下做一些處理和主應用程序,然後在主應用程序視圖中顯示信息

Dev並未使用每個應用程序的ContentProvider,而是建議使用startActivityForResult()啓動其他應用程序來處理數據,然後在每個觸發的Activity的setResult(Bundle)方法上設置結果。

+0

我想不出一個「Activity」替代了「ContentProvider」的場景。我建議你編輯你的問題,增加幾個段落,通過一個例子說明你如何使用每種技術來工作,所以我們可以給你一個更明智的答案。 – CommonsWare

回答

2

代替使用每個應用程序的ContentProviders中,開發建議用一個startActivityForResult()來啓動其他應用程序來處理數據,然後設置結果上的setResult(束)每個活動的方法觸發。

如果「啓動其他應用程序來處理數據」,你的意思是「展現給用戶的活動,允許用戶與數據交互」,然後用一個活動是完全合理的。如果活動背後的要點是讓用戶挑選某些東西,那麼讓該活動返回結果也是合理的。

但是,如果「啓動其他應用程序來處理數據」,您的字面意思是其他應用程序不會顯示任何內容,而只是「處理數據」以返回結果,然後一項活動是一個荒謬的選擇。 ContentProvider是否比Service更好的方法將取決於「過程數據」的含義和返回的結果類型,但要麼比使用活動要好。

+0

是的,Dev提議打開Activity,不顯示任何內容並處理數據......我一直認爲這是一個非常糟糕的做法。謝謝! – NemesisDoom