分享

Android 判断当前线程是否是主线程的方法

 Rdxer馆 2014-10-28
Android 判断当前线程是否是主线程的方法
2014-07-18     我来说两句    来源:石佛永不老  
收藏    我要投稿

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

方法一:使用Looper类判断

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

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

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

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

1
private Thread mUiThread;
1
2
3
4
5
6
7
public final void runOnUiThread(Runnable action) {
        if (Thread.currentThread() != mUiThread) {
            mHandler.post(action);
        } else {
            action.run();
        }
    }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多