Android(安卓)判断当前线程是否是主线程的方法
16lz
2021-01-24
开发过程中有时候会在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(); } }
更多相关文章
- 【Android(安卓)Studio初探】快捷键大全与常用设置
- android转屏时数据保存问题
- Android中AsyncTask的使用
- android sqlite 简明教程
- 07.Android之Bluetooth
- android 绘图时抗锯齿方法两种
- Handler&Looper
- Android之SQLite 学习一
- 5、frida进阶-Android逆向之旅---Hook神器家族的Frida工具使用详