[問題] Activity的架構問題
目前在將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
11/01 15:21, 1F
→
11/01 15:21, , 2F
11/01 15:21, 2F
→
11/01 15:22, , 3F
11/01 15:22, 3F
→
11/01 15:23, , 4F
11/01 15:23, 4F
→
11/01 15:24, , 5F
11/01 15:24, 5F
→
11/01 15:25, , 6F
11/01 15:25, 6F