我下載到一個Android 範例,他在 Fragment 裡 override handleMessage 去取得 runnable 事件。
他的 Fragment:
public class MainFragment extends Fragment implements View.OnClickListener, Handler.Callback {
他的 override:
@Override public boolean handleMessage(Message msg) {
但是我的code 寫到 activity 裡,無法 implement 和 override, 立馬學習如何使用 handler:
如何使用Handler
http://givemepass.blogspot.tw/2015/10/thread-2_14.html
Handler
https://developer.android.com/reference/android/os/Handler.html
Android筆記_Thread傳Message到Handler
http://wangshifuola.blogspot.tw/2011/06/androidthreadmessagehandler.html
Sample:
//又或者另外一種寫法 private Handler mHandler = new Handler(){ @Override public void handleMessage(Message msg) { switch(msg.what){ case 1: //處理少量資訊或UI break; } } }; new Thread(new Runnable(){ public void run(){ Message msg = new Message(); msg.what = 1; mHandler.sendMessage(msg); } });
拿 Main Thread 的 Handler 來處理比較少量資料。
new Handler(mContext.getMainLooper()).post(new Runnable(){
public void run(){
//處理少量資訊或UI
}
});
使用 Delay 的方法來延後 Thread 處理。
new Handler().postDelayed(new Runnable(){
public void run(){
//處理少量資訊或UI
}
}, 3000);
上面是在3秒後處理少量資訊。