主线程的activity为某个模块的listener,作为listener,这个acitivity实现listener的一个回调。在这个回调里直接更新主线程的UI thread,会出问题
比如
MainAcitivity implements TrackListner { @Override public void onSucess() { Log.d(TAG, "onSucess"); Toast toast = new toast(); toast.show(); }}
原因未知
按照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(); }}