可以解释为什么按钮显示。
xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<Button
android:layout_below="@+id/tt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Simple Button"/>
</RelativeLayout>
MainActivity
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "onCreate", Toast.LENGTH_SHORT).show();
}
}, 10000);
// Looper.loop();
}
}
上面的代码输出是
对于上面的代码输出是(当我取消注释Looper.loop())
任何人都可以解释这一点。 Looper.loop()正在做什么不在ui上显示按钮。 我知道的事情是Looper是我使用的主要ui线程Looper。
我知道Looper已经在运行(循环遍历消息)并且我正在调用Looper.loop();我只是想知道ui线程上的按钮绘制是什么意思是Looper重置或删除一些消息。正好当我们在已经循环的情况下在线程循环器上调用Looper.loop()时会发生什么。
答案 0 :(得分:1)
Looper.loop();
是一个无限循环,所以当你从主UI线程运行它时,代码执行基本上停在那里,阻止了UI的显示。
不确定您要完成什么,我对Looper
和线程一点都不太熟悉,但这里有一些我读过的关于Looper
的文章。< / p>
http://mindtherobot.com/blog/159/android-guts-intro-to-loopers-and-handlers/ http://corner.squareup.com/2013/10/android-main-thread-1.html