2019独角兽企业重金招聘Python工程师标准>>>
主线程的activity为某个模块的listener,作为listener,这个acitivity实现listener的一个回调。在这个回调里直接更新主线程的UI thread,会出问题
比如
MainAcitivity implements TrackListner {@Overridepublic 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();@Overridepublic void onSucess() {Log.d(TAG, "onSucess");Runnable r = new Runnable() {public void run() {Toast toast = new toast();toast.show();}};mHandler.post();}
}