作者Elfiend (小孩)
看板AndroidDev
标题[问题] Activity的架构问题
时间Fri Nov 1 12:51:57 2013
目前在将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
1F:→ KeySabre:可以简化後贴上PasteCode之类的网站吗 或许你整理後就有 11/01 15:21
2F:→ KeySabre:想法了 11/01 15:21
3F:→ KeySabre:我只能猜你的IntentService下载是要喂给WebView的? 11/01 15:22
4F:→ KeySabre:GetFileActivity有没有存在的必要 光这样看不出来 11/01 15:23
5F:→ KeySabre:启动两次Activity盖掉资料? 我猜你可能看看launchMode和 11/01 15:24
6F:→ KeySabre:intent flag, 研究看看会不会有帮助 11/01 15:25