[問題] Activity的架構問題

看板AndroidDev作者 (小孩)時間12年前 (2013/11/01 12:52), 編輯推噓0(006)
留言6則, 1人參與, 最新討論串1/1
目前在將Android 與Web結合,(就是一套html同時可放在android、iOS、與Web上) 在Activity與WebView之間的溝通部份有些問題, 我的架構是這個樣子: ┌───────┐ ┌────────┐ ┌───────┐ │ MainActivity │-> │GetFileActivity │ -> │ IntendService│ └───────┘ └────────┘ └───────┘ WebView show Loading <- sendBroadcast()回傳內容 <- onBackPressed() 回傳內容 因為有動作要去跟Server連線下載檔案, 所以必須要放在Service運作, 如果html裡的JavaScript Call InterFace的次數只有一次, 目前這個架構沒有任何問題, 但是連續Call二次時, 就會造成 下載頁面的GetFileActivity啟動二次, 舊的Activity的內容就會被刪除, (IntendService連續啟動二次沒有問題,會循序處理。) 解決方式:一)將啟動IntendService的部份放在MainActivity裡。 參數用陣列儲存 但是這樣我有二個問題, 1. 程式全都放在同一個檔案裡,希望將部份內容切到其他檔案, 所以作法是將功能寫在其他class裡,並宣告成static來使用嗎? 2. 在BroadcastReceiver也會全部都放在同一個檔案裡, 這樣的Receiver如果也想切到其他檔案,可以怎麼做? 解決方式:二)將所有參數同時傳遞,把GetFileActivity架空, 這樣被啟動多次也沒關係。 但是這樣可能會造成第一次的資料已經回傳,並且將Activity finish了, 第二次的資料才準備回傳,這時就沒有Receiver接收回傳內容了。 這二種想法有沒有其他問題跟解決方式? 這個問題有其他更好的解決方式嗎? 或者有什麼推薦關鍵字、網站可以提供參考的? 想要對架構設計方面能有更深的理解, 目前總是只找到針對特定問題的解決code。 很少看到有架構設計的內容。 目前已看完http://developer.android.com/training/index.html Trainin的部份。 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.251.136.103

11/01 15:21, , 1F
可以簡化後貼上PasteCode之類的網站嗎 或許你整理後就有
11/01 15:21, 1F

11/01 15:21, , 2F
想法了
11/01 15:21, 2F

11/01 15:22, , 3F
我只能猜你的IntentService下載是要餵給WebView的?
11/01 15:22, 3F

11/01 15:23, , 4F
GetFileActivity有沒有存在的必要 光這樣看不出來
11/01 15:23, 4F

11/01 15:24, , 5F
啟動兩次Activity蓋掉資料? 我猜你可能看看launchMode和
11/01 15:24, 5F

11/01 15:25, , 6F
intent flag, 研究看看會不會有幫助
11/01 15:25, 6F
文章代碼(AID): #1ISpDonr (AndroidDev)