问题标签 [android-looper]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1121 浏览

android - 获得 Looper 的最佳做法是什么?

我试过mContext.getMainLooper()Looper.getMainLooper(). 两者都返回相同的结果,但我想知道哪个应该是正确的方法?

我还从一个 Android 开发者链接中读到了这个这个

对于 Looper.getMainLooper():

Looper getMainLooper () 返回应用程序的主循环器,它位于应用程序的主线程中。

对于 mContext.getMainLooper():

Looper getMainLooper() 返回当前进程主线程的 Looper。这是用于分派对应用程序组件(活动、服务等)的调用的线程。根据定义,此方法返回的结果与调用 Looper.getMainLooper() 获得的结果相同。

0 投票
2 回答
1502 浏览

java - 来自非活动类的处理程序

我们可以执行吗

来自非Activity班级?

我有一个控制器类,假设它是一个适配器。我们可以在那里使用Handler吗?

我尝试使用断点调试我的应用程序,但没有达到控制

任何人都可以帮我解决这个问题吗?

实际上我正在使用OCR。如果进行了某些匹配,我想自动返回到我的主要活动。我想它是一个活套。我还需要拍摄它的照片。为此,我需要使用处理程序。

0 投票
0 回答
133 浏览

android - Looper/Handler 的大量 Android 日志输出

我在我的 Android 日志中得到了丰富的输出,而不是来自我的应用程序。(卸载后它们仍然存在。)如您所见,罪魁祸首可能是 Google Play 服务。

以下文本块在标记为 的毫秒内总共重复了九次(每次在括号中都有不同的数字)09-28 11:34:44.281,再次出现在 处~.286,并且没有明显的原因或缓解地重复:

在所有情况下(至少我检查过的情况),唯一的区别是括号内的字符串。其他所有内容,包括堆栈跟踪的详细信息,都保持不变。

谷歌搜索只能找到一个类似的实例——Cyanogen 的 JIRA 项目中一些晦涩且不相关的日志文件。

我只是想摆脱原因。仅仅过滤我的 logcat 输出是不够的,因为输出太多以至于整个事情都变慢了。

我确信任何帮助都会得到我的怪物支持。

0 投票
0 回答
474 浏览

java - 尝试使用 GoogleApiClient 在空对象引用上调用 android.os.Looper

我正在尝试将我的应用程序转换为服务,以便它不能轻易被破坏并保持运行。我已经多次移动代码试图找出正确的位置以便于使用,但现在我明白了

java.lang.NullPointerException:尝试在空对象引用上调用接口方法“android.os.Looper com.google.android.gms.common.api.GoogleApiClient.getLooper()”

它发生在这个代码块中:

具体来说,在“try”块下的第一行。该函数是该服务的 onCreate 中唯一调用的东西,因此在那里调用它。mGoogleApiClient 初始化的其他一些背景信息是:

如果有人知道让 MainActivity 与 Service 对话并解决此问题的正确方法,那就太好了!我似乎找不到解决我确切问题的答案。先感谢您。

0 投票
3 回答
55 浏览

java - 运行类时应用程序进入 MainActivity

我正在尝试运行此脚本,但在 doInBackground() 的某个地方,它正在重新启动以开始活动。

(我要做的是扫描所有可用的 SSID 并在数据库中检查它们)

这是我的代码:

这是我得到的错误:

0 投票
2 回答
1417 浏览

android - Android 项目中的处理程序:线程安全

我在一个 android 项目中使用 Handler 来给 main/ui 线程一个回调。

当我创建处理程序对象即 mHandler 时,我正在检查处理程序是否已经存在。如果没有,那么我正在创建处理程序,即使用单例模式。我的问题是:创建处理程序对象线程安全吗?

谢谢。

0 投票
0 回答
235 浏览

java - AbstractTracker 说 Looper.prepare() 没有被调用

我不使用任何与线程相关的东西,但模拟器一直在说:

它有办法调试更多,所以看看为什么会发生这个错误?

主要活动:

选项片段适配器:

SlidingTabLayout 来自谷歌:https ://github.com/google/iosched/blob/master/android/src/main/java/com/google/samples/apps/iosched/ui/widget/SlidingTabLayout.java

0 投票
1 回答
376 浏览

android - 如何停止处理程序线程中的通知

我有一个具有四个 RemoteView TextViews 的自定义通知。当 onPause() 被调用时,我想发布通知,然后在屏幕打开时每秒更新一次。当 onResume() 被调用时,我想取消通知。到目前为止,我已经设置好了,所以我有一个 volatile 布尔值,当 onPause() 被调用时设置为 true,当 onResume() 被调用时设置为 false。我有一个启动 HandlerThread 然后检查 volatile 布尔值的方法。如果布尔值为真,则应该更新通知,如果为假,则应该取消通知并关闭 HandlerThread。

就开始通知并每秒更新一次而言,一切似乎都运行良好。但是,当 onResume() 被调用时,它不会停止通知。

我还没有编码内容的屏幕,因为在我继续之前我试图弄清楚如何关闭通知和 HandlerThread。

到目前为止,这是我的代码:

0 投票
2 回答
463 浏览

android - 任何处理程序都可以使用 Lopper.getMainLooper() 发布到 mainThread

假设我在我创建的另一个线程中,在 android 中我执行以下操作:

我是否理解这里的处理程序与线程相关联,但由于我使用的是 mainThreads 循环器,它会将 runnable 发送到 mainThreads 消息队列进行处理?如果这是真的,任何线程上的任何处理程序都可以接受另一个线程循环器发布到它?那是对的吗 ?

还是“new Handler(Lopper.getMainLopper())”使它成为 mainThread 处理程序?

0 投票
1 回答
129 浏览

android - 使用 Looper for Producer-Consumer 模式有什么好处?

在我的应用程序中,很少有带有while-on-volatile-boolean循环和BlockingQueues 的线程用于它们处理的非常简单的对象消息(流水线架构)。

最近我遇到android.os.Looper了和它的朋友一起上课,这似乎做同样的工作,但是它们被放置在 API 中,那么使用它们而不是带有显式队列的手写循环有什么好处(尤其是性能)?还是只是某种“API 糖”?