12 回答
TA贡献1条经验 获得超7个赞
Android
前几天面试遇到的问题:更新UI在哪个线程,为什么?
还有面试遇到这个问题吗?由于回答的不完整,没通过。。
一般是在主线程,因为在子线程直接更新UI,通常会抛出如下异常:Only the original thread that crated a view hierarchy can touch its views。 一般我们都是利用子线程中发出Message,然后在主线程中通过Handler通知主线程的UI Thread来更新界面。
不过也有其它的方法:
<1>.最简单的onRunUIThread();
<2>.可以把更新UI的操作放在一个点击事件里
<3>.还有的是AsyncTask可以为我们提供一个线程的管理服务,里面的回调方法onPreExecute(),onPostExecute()和 onProgressUpdate()都是在UI线程调用,这样可以把子线程的更改数据传给它们。
(有去面试android开发的亲们可以参考下哦)
上个月写的一个理财通的项目:
遇到的问题:从文本框里面输入的数据无法导入到数据库中当中;
自己的理解:最后找到是viewpage在设置adapter的时候find了一次之后又find了一次,导致从文本框里面获得的内容 都是空,对于数据库语言错误,我把他放在命令行里面操作,仔细查改
学了几个月,正在找工作,喜欢的帮忙点个赞,谢谢;
TA贡献81条经验 获得超57个赞
恩,前几天在写一个项目遇到一个小障碍,需求是要在自定义View的子类中想要拿到本地数据跟一个Activity做数据交互切且动态更新 然后我自己罗列了几种方式,通过Intent+Bundle进行数据捆绑传递、Handler异步消息处理、BroacastReceiver发送广播接收广播、SharePreference写入本地数据接着读取本地数据。因为代码有点冗杂且可维护性差,最后选择用在OOP思维世界中的一句话“世间万事万物皆为对象”。通过在子view自己定义接口类(如果你自己写过类似onClickListener这种自定义接口的话你就知道了)然后在Acitivty去实现这个接口类做具体操作,功能实现了代码也清爽多了~
- 12 回答
- 38 关注
- 8508 浏览
添加回答
举报