主線程的activity爲某個模塊的listener,做爲listener,這個acitivity實現listener的一個回調。在這個回調裏直接更新主線程的UI thread,會出問題java
好比ide
MainAcitivity implements TrackListner { @Override public void onSucess() { Log.d(TAG, "onSucess"); Toast toast = new toast(); toast.show(); } }
緣由未知post
按照MVC的設計原則,全部UI相關的顯示(View),都在一個地方(UI thread)裏作,所以用Handler,來處理這個事情線程
MainAcitivity implements TrackListner { private Handler mHandler = new Handler(); @Override public void onSucess() { Log.d(TAG, "onSucess"); Runnable r = new Runnable() { public void run() { Toast toast = new toast(); toast.show(); } }; mHandler.post(); } }