Day 3
Title 1 UI线程阻塞及优化
//为Button添加一个动画操作的
Button button=(Button)findViewById(R.id.button);//创建按钮
TranslateAnimation animation=new TranslateAnimation(startX,endX,startY,endY);//设置按钮移动的方式
animation.setRepeat(num);//设置移动的次数 num次
animation.setDuration(time);/设置一次循环的事件 time毫秒
"UI 线程":当一个程序启动后,android系统会为这个应用程序创建一个主线程。这个线层非常重要,它负责渲染视图,分发事件到响应监听器并执行,对界面进行轮询的监听。因此,一般也叫作“UI”线程.
android系统不会给应用进程的多个元素组建多个线程来执行。一个视图(activity)中的多个view组建运行在同一个UI线程中。因此,多个view组建的监听器的执行可能会相互影响。
怎么解决阻塞问题?
在UI线程之外创建一个新的线程!!
post()方法可以解决在新建线程中不能修改组件的限制;
AsyncTask()是在post()基础上的优化,可以方便阅读,便于读者理解。
网友评论