|
转自煮机用户jarryson 的贴子:
9 j" _, `( p1 S& e0 j( C0 c2 l$ x3 a9 r9 m6 ^% C$ E
短信死机是因为短信过长,可能超过通知栏的缓冲区,而系统无法处理这类异常。通过哪个过长补丁,是只限制显示前面20个字符可以解决死机问题。但是这样会出现白色方块。
& z$ i' d7 w$ E) E+ L) r/ g+ L! c: l# ~, Q
很多人说出现方块是因为内存不足。但是无法解释此后所有程序使用通知栏,无论中文英文都方块。
, z+ n0 l3 G u7 T% [% j$ B3 k; t
" K# G, w4 I. y) k其实更可能的原因是中文是双字节,而通过过长补丁修改后,截取前面20个字符,正好截取到中文字符的一半,此后所有的字符都成了不可识别字符,当然无法显示了。Webos类似的BUG实在是太多了。比如波浪任务栏。3 F1 K7 h! h6 g$ P
% S8 X( R+ E* l5 v$ R+ Q
Private补丁通过不让显示消息内容实现避免死机和出现方块。这里的实现也是类似的,不过不是直接修改系统文件,而是通过中文语言文件。
1 J, h9 j4 E3 u# v* ?+ z" y/ m( B- K
尽量少修改系统文件的好处是减少补丁冲突的可能。修改语言文件更加灵活。无论你打了以上哪个补丁都不冲突,这一个优先级更高。8 t# d; r1 D: a/ A# b. {
+ `- v$ W7 g! E2 h" v( ]9 G
方法如下:$ m& G4 u3 B5 j6 e) j: I
修改/usr/palm/applications/com.palm.app.messaging/resources/zh/cn/strings.json,
, K0 U+ n4 F# M3 J8 j8 V+ `在中间加上一行,注意不是放在最后的话,结尾必须带逗号 A: N9 |4 E, p$ J$ _) [
6 q, V' I8 u P "#{name}: #{message}": "#{name}的短信",. m, c- X0 `6 @; S) o: i- g# |
, W9 X F/ \/ v3 X7 J7 w p
相信原理一看便知道了。原代码这一段是可以自定义成多国语言的,因此直接汉化,不显示后面的变量即可。
4 l8 H; j% C% g* f: K0 E f8 p$ @6 f) c5 H
R' s- U7 n+ F. y, b 该贴已经同步到 bestip的微博 |
|