开源中国android端兼容性BUG

zhanglibin123488 发布于 2015/10/15 13:05
阅读 223
收藏 1

本人使用开源中国安卓app时发现了的问题,是在魅族M1手机上运行,ram是1G的,其他功能暂时没发现问题,但是在我发表动弹的时候,出现以下问题:

1、编辑文字,按home键,然后又重新回到这个页面,文字没有了

2、拍照,拍照后不能直接获取照片,要手动去相册里面去获取照片。

经过本人排查,原因如下:

因为内存过低,按home键以及拍照,原activity被销毁,当再次回到界面时,被重建,重新执行Oncreate等。

当然,我可以通过保存数据的方式解决遇到的问题,也可以通过开启服务提高应用优先级的方式解决问题。

但是,本人在工作中,有项目也出现这种类似的问题,无法通过这种保存数据的方式解决,因为要给服务器发送请求获取数据,这个等待的时候可能比较长,可能有半分钟、一分钟左右,如果用户按下home键,又得重新来。项目中不允许重新请求数据,也要求要能接收到服务器返回的数据。我该怎么解决。

如何使我的activity在这种设备上运行,不出现这种因内存过低被销毁的情况,还请各位大神能帮忙解决下,在此先谢过了。

加载中
0
火蚁
火蚁

很难保证说不被销毁的,可以不显示的时候保存activity的状态和数据,再次进来的时候进行填充,是必须获取到服务器的数据才能进行往下的步骤吗,你可以请求一次存起来,再次进来的时候读取出来用

z
zhanglibin123488
我做的是一个支付应用,通过蓝牙外接pos机,从Pos机获取银行卡信息,当用户在pos机输入交易密码后,这边就会向服务器请求数据。而我们服务器还要向上游服务器请求数据,一级一级地直到银行,再返回,这个过程有时候由于网络原因时间会比较长最长可达到一分多钟才返回
0
iuKa
iuKa

1、TextView应该是View#onSaveInstance会保存其中文字,onRestore会重新恢复。如果确实有问题,可以继承EditText重新onSaveInstance和onRestoreInstance方法

2、调用拍照在部分Android手机上确实会出现这样问题,比如三星xxx。可以勾选开发者选项->不保留活动选项复现。通常原因是调用相机程序后,系统内存不足,kill掉后台的activity,导致activity成员变量丢失。解决办法是在拍照时指定相片存贮路径,并在onSaveInstance保存,在onCreate方法检查savedState并恢复变量。

z
zhanglibin123488
嗯,我现在拍照那部分就是这么做的,比较麻烦
0
z
zhanglibin123488

引用来自“火蚁”的评论

很难保证说不被销毁的,可以不显示的时候保存activity的状态和数据,再次进来的时候进行填充,是必须获取到服务器的数据才能进行往下的步骤吗,你可以请求一次存起来,再次进来的时候读取出来用

我做的是一个支付应用,通过蓝牙外接pos机,从Pos机获取银行卡信息,当用户在pos机输入交易密码后,这边就会向服务器请求数据。而我们服务器还要向上游服务器请求数据,一级一级地直到银行,再返回,这个过程有时候由于网络原因时间会比较长最长可达到一分多钟才返回。如果在这个过程activity被销毁了,再回到这个界面,就会重新加载这个界面,使得Pos机那边又提示输入交易密码。如果我人为控件不加载的话,服务器返回的交易数据我也接收不到了,也无法进行下一步显示交易成功或者失败。
返回顶部
顶部