AndroidDev 板


LINE

※ 引述《popcorny (毕业了..@@")》之铭言: : ※ 引述《issuemylove (skill)》之铭言: : 原则上是没问题.. : 因为Activity是继承於ContextWrapper : 他会把这些getResources的bypass给base context.. : 但是以你的应用 : 我猜C是singleton? : 我会建议C会这样写 : private C(Context context){ : this.mContext = context.getApplicationContext(); : } : 这样对mContext不会是Activity : 而会是application object.. : 或是你直接定义一个Application subclass : 并且让他也定义Singleton object : 然後context直接使用这个singleton appllication object 请问 如果我在 C 里强制cast 这样使用 A 会有什麽坏处?? 虽然很好用可是感觉哪边有洞在等我跳 ActivityA act = ((ActivityA) mContext); 这样在切换 activity 时 Activity A 会被系统回收掉吗 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.160.198.95
1F:→ popcorny:为什麽会有这样的需求? 02/18 19:25
2F:→ tryagainloop:还不太会切换activity 所以把所有物件都挂在 A上 02/19 10:12
3F:→ tryagainloop:在需要使用到 activity 上的物件的时候直接抓来用 02/19 10:13
4F:推 MetalChao:mContext 是 application object, 不是 A 的 object 02/19 10:37
5F:→ MetalChao:强制cast并没有任何意义; mContext 本身就是 A, 也不需 02/19 10:38
6F:→ MetalChao:要强制cast, 但虽然 A 的 object 不会被GC, 可是 A 如果 02/19 10:39
7F:→ MetalChao:已经 finish, 也无法再重新 onCreate, 意义不大, 如果 02/19 10:39
8F:→ MetalChao:在A finish 後仍需要存取的资料, 就不属於A的范围, 应该 02/19 10:40
9F:→ MetalChao:放在其他global的地方(如 application, database, etc) 02/19 10:40
10F:→ MetalChao:注:第二行是说"如果"mContext本身就是A (不采用popcorny 02/19 10:41
11F:→ MetalChao:大的作法的话) 02/19 10:41
感谢M大回覆 如果说我在 A 中 new 出一个 object AppMgr 我只要在其他 static object 去指向这个 AppMgr public static AppMgr mgr = ((ActivityA) mContext).mgr; 即使 A 被 finish 还是可以经由 static object 去读取 AppMgr ?? 不知道会被会因为 AppMgr 是在 A 中 new 出来的 造成 ActivityA 在GC 的时候 memory leak ※ 编辑: tryagainloop 来自: 118.160.198.95 (02/19 14:27)
12F:推 MetalChao:你的 mgr 这个 static 变数已经指向 这个 AppMgr obj了 02/19 17:04
13F:→ MetalChao:有人指向它(尤其还是个 static 变数), 不管A发生什麽事 02/19 17:04
14F:→ MetalChao:这个 object 就不会被 GC 02/19 17:04
15F:→ MetalChao:但如果你在意的是 memory leak, 也就是东西该清掉而没被 02/19 17:06
16F:→ MetalChao:清, 那麽你得自己考虑mgr所指向的这个物件, 是否在某些 02/19 17:07
17F:→ MetalChao:时候应该被清掉, 就要去设 mgr = null; 不然 static 02/19 17:07
18F:→ MetalChao:变数所指到的物件, 在这个JVM的生命周期中都会存在 02/19 17:07
19F:→ MetalChao:不过我是针对你的code来说, 实际情况 mgr 是否该放在A 02/19 17:08
20F:→ MetalChao:还有 mgr 是否该是一个 static 变数, 都要看情形 02/19 17:08
21F:→ tryagainloop:感谢M大的讲解 一直以来的疑问解决了 02/19 18:07







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP