昨天,遇到一个很头疼的问题。收到服务器的推送之后,APP重新启动了。但是,测试里面还不报错。
找了半天,找到问题的根源是因为 Notifacation 的问题:
用了 serFullScreenIntent();
这个方法在Android6.0 以下没有任何的问题。 但是在Android 6.0 中的,小米的手机上面,至于其他的手机,我只测试了三星没有问题。至于其他的手机,没有测过。
所以这个地方昨个版本判断就好了:
if(Build.VERSION.SDK_INT < 23){ //Android 6.0 一下的版本没什么问题。 可以正常弹窗 mBuilder.setFullScreenIntent(pendingIntent, true);}else{ //Android 6.0 小米貌似做了深度的定制,然后会重新启动APP. 三星的没有问题, 其他的机型不详}
待优化: 这个地方,这样做有点暴力。应该是,那个版本有问题就解决那个,我现在是把Android6.0 一棒子全部打死了。你可以尝试自己写一个工具类: 判定用户的手机是不是小米的手机, 如果是小米的手机,就不设置serFullScreenIntent();
解决问题很简单,但是,时间基本上都花在了寻找问题上。定位问题上面了!
很多的时候,都是这个样子。解决起来很快,但是定位问题比较的麻烦!
No comments:
Post a Comment