我下載到一個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秒後處理少量資訊。