Kindle Fire: 同一Fragment多次Replace后会出现空白界面

我们的Android开发,目前都是提倡写Fragment。

QA在测试过程中,发现了一些Fragment相关的Bug,尤其是在Kindle Fire上的特殊Bug,其中一个是:

在Kindle Fire上,同一Fragment多次Replace后会出现空白界面。


下面是我的同事的分析:

kindle fire ROM在底层进行了一些修改,这导致了Fragment不能多次replace。Kindle 所希望的是当replace方法被调用的时候,被replace的Fragment一定是一个新的对象,而这和Google在官方文档中所提倡的也是一样的。但不同的是,googles虽然提倡这么做,但它并没有限制说不可以这样用。这时候我们采取了一种方式,但这种方法也有一定的局限性。简单介绍一下这种方法。简单来讲这种方法使用于某些具有Tab的界面。这些页面都存在一个ActionTab,我们在其回调方法(onTabSelected(Tab arg0, FragmentTransaction ft))内通过attach()来绑定一个已经add了的Fragment,同时在onTabUnselected(Tab arg0, FragmentTransaction ft)方法内进行detach()来解绑一个Fragment.这样做不但减少内存的消耗还提高了效率,建议以后遇到类似的情况可以使用这样的方式。但同时这个方法存在一定的局限性。通常我们在类似于Tab这样的控件中比较好使用,而在多个互相影响的Fragment之间就不推荐使用了。

如上面的分析,我们后来碰到一个Bug,由于界面不是Tab的,就暂时没有办法了。


后来,我有了点时间,就参与到这个问题的调查上。我的入手点是在一个问题:Kindle Fire的Android版本到底跟一般的有什么区别?Amazon的官方文档上会有提到相关的已知问题和解决方法吗?

经过查询,并没有在Amazon的网站上找到Kindle Fire有特殊实现的言语,然后根据这个网址的内容(http://en.wikipedia.org/wiki/Kindle_Fire_HD),似乎Kindle Fire的OS只是基于Android的特定版本做了一些修改,没有太底层的改动。然后我又确认了,目前手头的7寸和8.9寸都是第一代的,即基于4.0.3,于是我猜想,是不是4.0.3本身的Bug?手头没有4.0.3的设备,用模拟器重现了Bug。

目前我们只是比较倾向于这个是4.0.3的Bug,还没有找出解决办法,由于4.0.3的较少了,所以我们降低了解决这个问题的优先级。

后来我跟同事讨论了这个事情,建议他们将来接到QA报告的Kindle Fire特有的Bug时,用4.0.3的模拟器尝试重现下。如果是4.0.3特有的Bug,我们可以考虑下优先级,即使真的要Fix,我们在网上搜索答案的时候也可以更广泛,而不用拘泥于Kindle Fire。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值