2014-05-22 25 views
2

有一個包含多個類別的設置屏幕,每個類別都有5到6個自己的設置。試想一下Android OS的設置屏幕。對於簡單的數據庫操作有很多AsyncTasks是不好的?

現在,爲了避免在底部設置按鈕,並試圖在用戶更改任何設置時立即實施應用更改(從而獲得應用程序的速度並獲得更好的用戶體驗),我想有幾十個AsyncTask類,每個實現一個簡單的事情。

例如,有一個設置屏幕,包含4個要設置的內容。用戶更改了設置編號1,我立即在後臺爲該特定設置調用AsyncTask。對於用戶進行的每次更改,都是這樣。

這樣做有多聰明?這是否會超載AsyncTask想法,甚至會導致過多的AsyncTasks被調用(因爲我讀了可以調用的限制,可以調用5,或者其他)?

當用戶離開特定設置屏幕時,用1 AsyncTask所做的所有更改調用1更好的設計嗎?

注:我不是在這裏問如何實施AsyncTask。我的問題直接關係到應用的最佳設計和最佳速度,以及最好的用戶體驗。

+0

您的設置是否全部保存到某個服務器?當然,其中很多都存儲在本地。無論哪種方式,您都不需要數十個AsyncTask實現。只需傳遞您設置的AsyncTask值,並創建一個通用的AsyncTask來處理它。 – ashishduh

+0

另外,如果您要將更改保存在單獨的線程中,如果用戶進行了更改,然後快速點擊相同的設置但未更新呢?除非在AsyncTask正在運行時您有類似ProgressDialog的東西,否則您可能會遇到併發問題。在這種情況下,您將永遠不會運行多個AsyncTask。 – ashishduh

回答

1

當你有一分鐘​​左右的操作超過1/2(在Android中引用限制)時,你不應該使用asynctask。你分配了很多對象,我偶爾發現它看起來像Asynctasks正在等待另一個。也許使用處理程序/可運行。

在站點備註上,可以將變量中的所有更改保存在內存中,然後定期將設置保存到後備存儲。沒有比設置實例變量/數組更快的了。

相關問題