|
转自煮机用户jarryson 的贴子: Z8 d- { q) ^4 ~8 o0 M0 O: z
4 D0 W% ^2 G" W8 e# Z* j/ [
短信死机是因为短信过长,可能超过通知栏的缓冲区,而系统无法处理这类异常。通过哪个过长补丁,是只限制显示前面20个字符可以解决死机问题。但是这样会出现白色方块。
a# U1 `9 f. a2 N- \0 v, C
& U/ Y; M6 F0 f" Q很多人说出现方块是因为内存不足。但是无法解释此后所有程序使用通知栏,无论中文英文都方块。& O8 G7 A4 R9 D7 F" m
& t& w- |' L/ o) b: }
其实更可能的原因是中文是双字节,而通过过长补丁修改后,截取前面20个字符,正好截取到中文字符的一半,此后所有的字符都成了不可识别字符,当然无法显示了。Webos类似的BUG实在是太多了。比如波浪任务栏。1 t( r$ S" m) Z7 ? T/ a h
" }- t! @" l1 |Private补丁通过不让显示消息内容实现避免死机和出现方块。这里的实现也是类似的,不过不是直接修改系统文件,而是通过中文语言文件。
6 v, ~8 I8 `! K: l3 |2 \5 ? h; ]1 [8 w2 `! [$ }
尽量少修改系统文件的好处是减少补丁冲突的可能。修改语言文件更加灵活。无论你打了以上哪个补丁都不冲突,这一个优先级更高。
; T3 O; n; r% _; {" \! B5 e( o( P \- J( e8 M
方法如下:
4 b( p! w* s1 s修改/usr/palm/applications/com.palm.app.messaging/resources/zh/cn/strings.json,
0 g0 L' j0 o! ~8 B) N# @% _! F在中间加上一行,注意不是放在最后的话,结尾必须带逗号
$ l/ W$ @2 [& g% [& x. Z
3 T! W2 U1 U- E. ]& x "#{name}: #{message}": "#{name}的短信",
, t% P4 D* y* }! ]7 O, I. `2 |$ P$ _7 y
相信原理一看便知道了。原代码这一段是可以自定义成多国语言的,因此直接汉化,不显示后面的变量即可。8 v+ J7 d6 X+ N- w) \& i
6 t6 ^6 @" @) g/ ~' X1 ]
% B% C J- @0 [ 该贴已经同步到 bestip的微博 |
|