簡單記錄下runnable的一點東西。
runnable 并不是新開一個線程,runnable中只有一個public void run()方法。新開一個線程必須通過Thread.start(),所以使用handler.post(runnable)并沒有新開一個線程,內部的工作原理是先創建一個message,將runnable賦值為message的callback屬性,通過sendMessage將這個message添加到handler所在線程的消息隊列中,處理時從消息隊列取出一個消息交給dispatchMessage方法處理,在dispatchMessage中先判斷message中的成員屬性callback(即runnable)是否為null,不為null的話直接調用callback.run()。callback為null的話調用handleMessage()方法處理。