2012-12-13 36 views
0

好的我已經有一段時間了現在這個問題。我正在開發一個相機應用程序,它可以進行一些驗證並將照片上傳到網站。在Android活動之間移動的一些很好的策略

我的問題是,我一直在討論如何使一系列活動返回到前一活動的結果,或使每個活動返回到產生下一活動的主活動,這取決於結果。

下面是一個示例:主要活動顯示一個照片庫,您可以從該照片庫啓動相機預覽。捕捉照片後,打開另一個活動,您可以驗證是否要保存該照片。驗證之後,您會看到另一個顯示上傳進度的活動。這可以被實現爲startactivityforresults鏈:

畫廊 - >相機 - >驗證 - >上傳 - >驗證 - >相機 - >畫廊

OR爲:

畫廊 - >相機

相機 - >畫廊

畫廊 - >驗證

驗證 - >畫廊

畫廊 - >上傳

上傳 - >畫廊

回答

1

不要使用活動以顯示上傳進度。使用ProgressDialog,或者更好的是將操作卸載到後臺的IntentService中。記住在嘗試上傳之前檢查網絡連接!

作爲「驗證」保存的替代方法,您可以自動保存並允許用戶「撤消」保存。用戶體驗指南表明,交互越少越好,特別是在小型設備上。

您也可以將所有照片從「會話」保存到本地存儲,然後允許用戶稍後或異步地上傳照片。

除此之外,如果您想允許用戶在步驟之間隨意來回移動,並且每個步驟都保持其狀態,您可能需要單獨的活動/片段。

總之,你應該先花點時間思考用戶做什麼。一旦你有一個用戶想要使用你的應用程序的模糊模型,然後設計它來實現這一點。太多的開發人員根據他們對API的理解急於構建應用程序。這種做法是有限的。

0

您是否每次要關閉活動時都調用activity.finish()? 您是否使用AsyncTask類來執行網絡通信並顯示上傳進度欄,然後啓動另一個活動?

的的AsyncTask類http://developer.android.com/reference/android/os/AsyncTask.html真正幫助你做這樣的操作: ActivityA - >網絡連接和操作(在研究背景中運行) - >顯示進度條或類似在進行網絡通信的東西(在你的情況下上傳照片) - >在AsyncTask的onPostexecute()方法中啓動另一個活動!

這確實可以幫助您從應用程序的活動和安全行爲中獲得穩定的轉換!

我希望這回答你的問題!