为了避免不是在当前主线程造成的异常的两种靠谱的方式:
第一种:
/**
* 判断是否在当前主线程
* @return
*/
public static boolean isOnMainThread(){
return Thread.currentThread() == Looper.getMainLooper().getThread();
}
第二种:
/**
* 判断是否在当前主线程
* @return
*/
public static boolean isOnMainThread(){
return Looper.myLooper() == Looper.getMainLooper();
}
使用的地方如可能在使用Gilde时出现的bug:java.lang.IllegalArgumentException: You cannot start a load for a destroyed activity
其解决办法之一就是在加载的时候判断是否是在该主线程内。如不在则不执行加载,可避免很多不必要的,出现概率低的异常。关于这个异常参考资料链接:https://github.com/bumptech/glide/issues/803