首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查是否在UI-线程上调用了一个方法

检查是否在UI-线程上调用了一个方法
EN

Stack Overflow用户
提问于 2013-09-02 11:12:55
回答 2查看 1.5K关注 0票数 4

这里的任何人都知道如何编写测试(或者理想情况下有这样的示例)来检查是否在UI-Thread上调用了一个方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-02 11:17:41

答案参考以下链接:

How to check if current thread is not main thread

How to know if this thread is a UI Thread

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

2) Android应用程序只有一个UI线程,因此您可以在活动回调(如onCreate() )中检查并存储其ID,然后只需将该线程的ID与存储的ID进行比较。

代码语言:javascript
复制
 mMainThreadId = Thread.currentThread().getId();

3)如果您想在UI线程上执行某些操作,并且通过以下方法对活动有任何引用

代码语言:javascript
复制
mActivity.runOnUiThread( new Runnable() {
    @Override 
    public void run() {
    ...
    }
});

希望它能帮上忙

票数 4
EN

Stack Overflow用户

发布于 2013-09-02 11:17:21

UI线程总是有id = 1,所以您可以尝试检查:

代码语言:javascript
复制
if(Thread.currentThread().getId() == 1) {
///...
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18571860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档