FirstDemoActivityjava
public class MyDemoActivity extends AppCompatActivity { public static final int SET = 1; //設置一個what標記 private TextView info = null; //文本顯示組件 private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case SET: //判斷標誌位 MyDemoActivity.this.info.setText("當前時間爲:" + msg.obj.toString()); //設置顯示時間 break; } } }; /** * 顯示時間類 */ private class ClockTread implements Runnable { @Override public void run() { while (true) { Message msg = MyDemoActivity.this.handler.obtainMessage(MyDemoActivity .SET, new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"). format(new Date())); //實例化Message MyDemoActivity.this.handler.sendMessage(msg); //發送消息 try { Thread.sleep(1000); //延遲1s } catch (InterruptedException e) { e.printStackTrace(); } } } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.setContentView(R.layout.activity_main); this.info = (TextView)findViewById(R.id.info); new Thread(new ClockTread()).start(); // 啓動線程 } }
2. activity_main.xmlandroid
<AnalogClock android:id="@+id/AnalogClock" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/info" android:layout_width="fill_parent" android:layout_height="wrap_content" />
普通的方法是沒法直接刷新UI界面的,這時須要藉助Handler發送給主線程消息傳遞數據。ide