为什么那么恨android

前言

我不是果粉,但是,我很喜欢乔布斯,是个乔粉

我是android开发者,从不动ios开发,目前为止

android的开发策略,导致碎片化日益的严重,给你举一些例子:关于适配

同一套代码,在配置不高的huawei 8800+上运行流畅,但是在samsung s3上非常的卡顿,原因仅仅是一个显示API:你要调用view.setBackgroundDrawable(new BitmapDrawable(...)),而不是,view.setImageResource()(尽管.png就在你的res/drawable中),因为你要显示的图片很大,而且是不停的再更换显示图片,将会引发不停的System.gc()(这个实验的平台均是android4.x)

还有很多个系统级bug,好吧,这篇文章也是在说这些bug(并会不断更新),很荣幸,大部分在4.x上已经被解决了

bug

1. layout1.xml将被include到main.xml中,而layout1.xml中的root view设置了layoutparams,但是在最终显示时,会完全不考虑该lp

解决:在代码里面,再次为layout1.xml的root view设置lp

是否在4.x中出现:否

2.父亲是framelayout,而孩子也是framelayout,当不停的设置孩子的margin时,以期望有运动的效果时,失败

解决:请将孩子设置relativelayout,而不是framelayout

是否在4.x中出现:否

3.你有两个activity1和activity2,流程是这样的,先展示activity1,停3s后,跳转到activity2。

嗯,很完美,但是,看看这个情形:activity1在展示,然后按home按键,一段时间后,自动跳转到activity2

请不要说,这可以通过设计避免,但是,请让我说完

startactivity(activity2)调用后,并不会立刻调用activity2.oncreate,则,意味着什么

好吧,再细致一点:startactivity(activity2), activity1.onpause, activity2.oncreate, xxx

这个流程有什么问题呢?

a.在正常的情况下,是该流程

b.在activity显示,然后home按键,一段时间后,自动跳转到activity2,也是该流程

那么,我该如何判断上述两种情况呢

有人可能会说,捕捉一下home按键咯,那么,请google一下,ics已经屏蔽了这种方法

我尝试了 recenttask, runningtask,以区别上述两个情况,但是,都失败了(如果你知道怎么来区分,请告诉我)

是否在4.x中出现:是

相关推荐