android开发思路,开发思路 · Android应用开发知识仓库 · 看云

本文主要讨论了Android开发中遇到的几个典型问题及解决方案,包括敏感词过滤导致的消息发送失败处理,数据类型不匹配引起的问题,ListView复用视图的异常,运行时权限的错误处理,以及布局文件中控件ID重复导致的困扰。每个问题都提供了相应的解决策略,如自定义消息处理敏感词,调整数据类型匹配,优化ListView代码,正确处理运行时权限,以及检查和修正布局文件中的ID冲突。
摘要由CSDN通过智能技术生成

[TOC]

# 一切皆可自定义

![](https://img.kancloud.cn/3e/70/3e70a67b52715063a543c310e3d1bca5_459x435.jpg)

**产品需求:** 当用户发送的消息内容包含敏感词时,需要做发送失败处理,对方无法接收到消息,但需要展示在聊天列表,点击红色感叹号提示发送失败。

**解决方案:** 由于使用的是环信SDK,一开始想的解决方案有:a,在消息发送前设置消息状态(无效);b,设置消息接收人为空(iOS有效,Android无效);c,手动写入消息到本地消息数据库(消息UI无法控制);d,数据库取回消息后,展示前插入敏感词消息(实现复杂,需要自己维护敏感词消息)。最终的解决方案:考虑到我们之前有使用自定义消息,采用自定义消息的形式,但是将自定义消息的UI做成普通的消息UI即可,点按发送消息按钮时,直接调用存储消息接口。

# 数据类型引发的bug

**问题:** rap上录入的接口直接转换为Java bean,但是实际后台接口返回的数据类型不匹配,易造成显示问题

# ListView视图类型的复用问题

**问题:** IM聊天界面新增了一种视图类型,但是由于之前代码使用ListView实现,且业务逻辑异常混乱错杂,上线后出现View复用时出现异常,在需要紧急修复bug的情况下,进行代码重构太过耗时。

**解决方案:** 新增的视图类型与原有的相似类型进行布局共用,根据itemViewType来控制布局内容的具体展示。当然这只是在时间紧急情况下的一种解决临时方案,还是应找出View复用异常的原因并处理。

# 运行时权限问题

**问题:** 工信部返回的问题是应用内部频繁请求定位权限,初期无法重现

**解决方案:** 经排查,由于原先只适配6.0以下版本系统,未加入动态申请权限代码。后期加入动态申请代码时,未添加完整,导致多处未动态申请权限,直接调用了定位的相关代码。造成用户在使用时没看到在申请定位权限,但其实应用一直在进行定位。

# 布局文件中控件id重复问题

**问题:**在Java代码中根据id获取控件并设置文本,文本不显示。debug发现TextView并不为空,要设置的目标文本也不为空。直接将TextView内容写死可以显示,因此字体颜色这些并无问题。

**解决方案**经仔细查看布局文件,布局文件中使用include标签引入其他布局,其他布局中存在和当前布局中id名相同的空间。但由于没在一个布局文件中,Android Studio并不会报错,因此在设置文本的时候设置的都是其他布局中的TextView。恰巧其他布局在一开始又是隐藏不显示的,造成更改当前布局中控件无效的假象。

# LinearLayout方向问题要注意

记得设置LinearLayout的排列方向

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值