/**
* 判断是否在主线程中
* @return
*/
public static boolean isInMainThread() {
Looper myLooper = Looper.myLooper();
Looper mainLooper = Looper.getMainLooper();
Logger.i(TAG, "isInMainThread myLooper=" + myLooper + ";mainLooper=" + mainLooper);
return myLooper == mainLooper;
}
定位成功后更新界面UI
public void setLocation(final String city) {
if(ThreadUtils.isInMainThread()){
cityTv.setText(city);
}else{
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
cityTv.setText(city);
}
});
}
}
该代码段展示了如何判断当前代码是否运行在Android的主线程中,通过比较Looper对象来实现。如果在主线程,则直接更新UI;否则,使用runOnUiThread方法确保在主线程执行UI更新操作。
203

被折叠的 条评论
为什么被折叠?



