|
转自煮机用户jarryson 的贴子:
# M# a: Y. M7 w8 [9 v) }3 ]5 V4 L4 r
短信死机是因为短信过长,可能超过通知栏的缓冲区,而系统无法处理这类异常。通过哪个过长补丁,是只限制显示前面20个字符可以解决死机问题。但是这样会出现白色方块。% [. ?5 c( a+ }+ n8 P( \3 z4 |$ g
7 t F5 {+ b5 q: ^% X很多人说出现方块是因为内存不足。但是无法解释此后所有程序使用通知栏,无论中文英文都方块。8 |; }) J* E& @
/ f' s: |. k/ k2 Q6 z' s
其实更可能的原因是中文是双字节,而通过过长补丁修改后,截取前面20个字符,正好截取到中文字符的一半,此后所有的字符都成了不可识别字符,当然无法显示了。Webos类似的BUG实在是太多了。比如波浪任务栏。3 }) u0 ^, @$ j N
( N# V' q- e( W9 I
Private补丁通过不让显示消息内容实现避免死机和出现方块。这里的实现也是类似的,不过不是直接修改系统文件,而是通过中文语言文件。! w( J ]2 i6 n8 M, }3 l
; E t2 }9 \. m/ O6 ^0 D6 {1 T尽量少修改系统文件的好处是减少补丁冲突的可能。修改语言文件更加灵活。无论你打了以上哪个补丁都不冲突,这一个优先级更高。' o$ o7 u$ A0 V
; z5 y$ l5 I; E; s/ T; l: S
方法如下:
. U9 r# \$ I7 }& f6 z) N修改/usr/palm/applications/com.palm.app.messaging/resources/zh/cn/strings.json,
/ Y( h$ f7 W# S8 o' G0 ?在中间加上一行,注意不是放在最后的话,结尾必须带逗号( E9 r1 _6 C0 g2 I! ]* [! z
) p# e g! O2 M9 Y$ W) k1 x
"#{name}: #{message}": "#{name}的短信",
4 B2 U3 p; F0 l2 a' {8 ~
# ?) V( J1 M5 _% O. |) N1 C相信原理一看便知道了。原代码这一段是可以自定义成多国语言的,因此直接汉化,不显示后面的变量即可。
5 H% b& P( R& y. p5 V! W, W1 M) U( N; R/ M8 S& M
% e3 J: W* X( F, X: C( T
该贴已经同步到 bestip的微博 |
|