- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经尝试了 mContext.getMainLooper()
和 Looper.getMainLooper()
。两者都返回相同的结果,但我想知道哪种方法正确?
我还从 Android 开发人员链接中阅读了这篇文章 this和 this :
For Looper.getMainLooper():
Looper getMainLooper () Returns the application's main looper, which lives in the main thread of the application.
For mContext.getMainLooper():
Looper getMainLooper () Return the Looper for the main thread of the current process. This is the thread used to dispatch calls to application components (activities, services, etc). By definition, this method returns the same result as would be obtained by calling Looper.getMainLooper().
最佳答案
getMainLooper()
作为一个方法,它会根据你调用它的方式返回相同的结果,所以你可以认为两者是一样的,因为从上下文中返回 Looper 会得到你从应用程序返回循环程序时得到相同的结果,为了更好地了解 Looper类并查看它如何返回循环器:
private static Looper sMainLooper;
public static Looper getMainLooper() {
synchronized (Looper.class) {
return sMainLooper;
}
}
public static void prepareMainLooper() {
prepare(false);
synchronized (Looper.class) {
if (sMainLooper != null) {
throw new IllegalStateException(
"The main Looper has already been prepared.");
}
sMainLooper = myLooper();
}
}
public static Looper myLooper() {
return sThreadLocal.get();
}
并且在查看 ThreadLocal.class 中的 get()
方法时:
public T get() {
Thread t = Thread.currentThread();
ThreadLocalMap map = getMap(t);
if (map != null) {
ThreadLocalMap.Entry e = map.getEntry(this);
if (e != null)
return (T) e.value;
}
return setInitialValue();
}
和Thread.currentThread();
根据Thread.class文档:
Returns: the currently executing thread.
在运行 android 的情况下,哪个线程持有上下文。
毕竟,我发现应该困扰您的不是如何获得主循环器,而是处理循环器时应该遵循的最佳实践是什么,例如何时使用 getMainLooper()
以及何时使用 Looper.prepare()
,as described here :
Looper.prepareMainLooper() prepares looper in main UI thread. Android applications normally do not call this function. As main thread has its looper prepared long before first activity, service, provider or broadcast receiver is started.
But Looper.prepare() prepares Looper in current thread. After this function is called, thread can call Looper.loop() to start processing messages with Handlers.
你还应该知道getMainLooper()
和myLooper()
之间的区别,as described here :
getMainLooper
Returns the application's main looper, which lives in the main thread of the application.
myLooper
Return the Looper object associated with the current thread. Returns null if the calling thread is not associated with a Looper.
关于android - 获得 Looper 的最佳做法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39613713/
如果您想分享更多信息,可以在这里找到整个资源 指针: https://github.com/sergiotapia/DreamInCode.Net 基本上,我的API将为其他开发人员提供
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 5 年前。 Improve this qu
我不是 SCM 工具的经验丰富的用户,尽管我确信它们的用处,当然。 我在以前的工作中使用了一些不起眼的商业工具,在当前的工作中使用了 Perforce,并在我的小型个人项目中使用了 TortoiseS
所以我想知道一些我应该避免在 javascript 中做的事情以获得良好的 SEO 排名。在我的下一个站点中,我将广泛使用 jquery 和 javascript,但不想牺牲 SEO。那么您认为我应该
基本上,我想知道什么是避免 future CSS 代码出现问题和混淆的最佳方法... 像这样命名 CSS 属性: div#content ul#navigation div.float-left (真
我是一名优秀的程序员,十分优秀!