Android项目实战_新浪微博客户端开发过程中遇到的问题及解决办法01

来源:互联网 发布:csgo淘宝买的有市场 编辑:程序博客网 时间:2024/05/16 00:48

实战项目:新浪微博Android客户端开发(学习ivanhxy老师的视频教程)

第四讲系统主框架搭建2_点击登录按钮界面没有刷新改变(2012.5.1)

预期效果运行Android application后,模拟器正常启动微博动画界面,3秒后跳转到登陆界面,登陆界面有一个textview和一个Login button,点击这个登录按钮,textView上相应的text会把“weiboliao”修改为“登陆成功”,这样就表示运行成功(服务启动正常,逻辑处理正常,线程监听正常,handler刷新UI正常)。


实际效果:点击Login按钮后,"weiboliao"并没有刷新成"登陆成功"


问题原因:线程没有跑起来,调试过程中当执行thread.start()后并没有调用方法run()(此方法用来监听任务列表中的任务及获取任务和处理任务,然后通知handler调用refresh()来刷新UI),问题出在我nnd敲打忘写了个东西- -|||,Thread thread = new Thread();大家对比下就晓得了,修改后应是Thread thread = new Thread(this);就是没加this导致线程没跑,下面一段是我从百度知道那里copy的一段,很好的解释了我滴问题,拜谢此大哥啊......    下面请欣赏:

new Thread(XXX)的意思是以XXX为基础创建一个线程,start()方法会触发这个线程的run()方法(实际上是XXX提供的run()方法)的执行。 也就是说Thread是个空壳,XXX才是内容。new Thread()也是可以的,只不过创建的是个空线程,即仅仅是个空壳。start()出发的run()是这个空线程的run(),这个run()是没任何功能的。
准确说只要是new Thread就会创建一个新线程,只不过new Thread()创建的线程没啥用而已,他的run()一闪而过,不带走半片云彩。而new Thread(XXX)由于有了XXX,所以创建的线程就不会调用那个没用的run,而是调用XXX提供的run()了。至于XXX的run()带不带走云彩,就看你咋写了:)

原创粉丝点击