开发过程中有时候会在Thread类中执行某些操作,有些操作会由于Android版本的不同,尤其是低版本而Crash,因此必要的时候会查看某些容易引起crash的操作是否是在主线程,这里举三种方法:

方法一:使用Looper类判断

 Looper.myLooper() != Looper.getMainLooper()

方法二:通过查看Thread类的当前线程

Thread.currentThread() == Looper.getMainLooper().getThread()

方法三: 使用线程句柄判断,将主线程的Thread.currentThread()获取到主线程当前句柄,保存起来,在需要判断的时候调用Thread.currentThread()来与之比较,即可判断当前线程是否是主线程了,该方法可以参见Activity中

private Thread mUiThread;
public final void runOnUiThread(Runnable action) {        if (Thread.currentThread() != mUiThread) {            mHandler.post(action);        } else {            action.run();        }    }


更多相关文章

  1. 【Android(安卓)Studio初探】快捷键大全与常用设置
  2. android转屏时数据保存问题
  3. Android中AsyncTask的使用
  4. android sqlite 简明教程
  5. 07.Android之Bluetooth
  6. android 绘图时抗锯齿方法两种
  7. Handler&Looper
  8. Android之SQLite 学习一
  9. 5、frida进阶-Android逆向之旅---Hook神器家族的Frida工具使用详

随机推荐

  1. Android获取设备唯一标识完美解决方案
  2. [置顶] Android(安卓)跨进程通信Aidl的使
  3. android WebView 图片缩放功能小结
  4. Android(安卓)常用RGB值以及中英文名称
  5. Android(安卓)中文 API (27) —— SeekBar.
  6. flutter-使用第三方库,编译和运行版本不
  7. android 面试题集
  8. [Android]在App中使用相机
  9. Android(OpenCV) NDK开发: 0xdeadbaad(co
  10. Android之adb环境变量配置