问题标签 [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.
android - 获得 Looper 的最佳做法是什么?
我试过mContext.getMainLooper()
和Looper.getMainLooper()
. 两者都返回相同的结果,但我想知道哪个应该是正确的方法?
对于 Looper.getMainLooper():
Looper getMainLooper () 返回应用程序的主循环器,它位于应用程序的主线程中。
对于 mContext.getMainLooper():
Looper getMainLooper() 返回当前进程主线程的 Looper。这是用于分派对应用程序组件(活动、服务等)的调用的线程。根据定义,此方法返回的结果与调用 Looper.getMainLooper() 获得的结果相同。
java - 来自非活动类的处理程序
我们可以执行吗
来自非Activity
班级?
我有一个控制器类,假设它是一个适配器。我们可以在那里使用Handler
吗?
我尝试使用断点调试我的应用程序,但没有达到控制
任何人都可以帮我解决这个问题吗?
实际上我正在使用OCR。如果进行了某些匹配,我想自动返回到我的主要活动。我想它是一个活套。我还需要拍摄它的照片。为此,我需要使用处理程序。
android - Looper/Handler 的大量 Android 日志输出
我在我的 Android 日志中得到了丰富的输出,而不是来自我的应用程序。(卸载后它们仍然存在。)如您所见,罪魁祸首可能是 Google Play 服务。
以下文本块在标记为 的毫秒内总共重复了九次(每次在括号中都有不同的数字)09-28 11:34:44.281
,再次出现在 处~.286
,并且没有明显的原因或缓解地重复:
在所有情况下(至少我检查过的情况),唯一的区别是括号内的字符串。其他所有内容,包括堆栈跟踪的详细信息,都保持不变。
谷歌搜索只能找到一个类似的实例——Cyanogen 的 JIRA 项目中一些晦涩且不相关的日志文件。
我只是想摆脱原因。仅仅过滤我的 logcat 输出是不够的,因为输出太多以至于整个事情都变慢了。
我确信任何帮助都会得到我的怪物支持。
java - 尝试使用 GoogleApiClient 在空对象引用上调用 android.os.Looper
我正在尝试将我的应用程序转换为服务,以便它不能轻易被破坏并保持运行。我已经多次移动代码试图找出正确的位置以便于使用,但现在我明白了
java.lang.NullPointerException:尝试在空对象引用上调用接口方法“android.os.Looper com.google.android.gms.common.api.GoogleApiClient.getLooper()”
它发生在这个代码块中:
具体来说,在“try”块下的第一行。该函数是该服务的 onCreate 中唯一调用的东西,因此在那里调用它。mGoogleApiClient 初始化的其他一些背景信息是:
如果有人知道让 MainActivity 与 Service 对话并解决此问题的正确方法,那就太好了!我似乎找不到解决我确切问题的答案。先感谢您。
java - 运行类时应用程序进入 MainActivity
我正在尝试运行此脚本,但在 doInBackground() 的某个地方,它正在重新启动以开始活动。
(我要做的是扫描所有可用的 SSID 并在数据库中检查它们)
这是我的代码:
这是我得到的错误:
android - Android 项目中的处理程序:线程安全
我在一个 android 项目中使用 Handler 来给 main/ui 线程一个回调。
当我创建处理程序对象即 mHandler 时,我正在检查处理程序是否已经存在。如果没有,那么我正在创建处理程序,即使用单例模式。我的问题是:创建处理程序对象线程安全吗?
谢谢。
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
android - 如何停止处理程序线程中的通知
我有一个具有四个 RemoteView TextViews 的自定义通知。当 onPause() 被调用时,我想发布通知,然后在屏幕打开时每秒更新一次。当 onResume() 被调用时,我想取消通知。到目前为止,我已经设置好了,所以我有一个 volatile 布尔值,当 onPause() 被调用时设置为 true,当 onResume() 被调用时设置为 false。我有一个启动 HandlerThread 然后检查 volatile 布尔值的方法。如果布尔值为真,则应该更新通知,如果为假,则应该取消通知并关闭 HandlerThread。
就开始通知并每秒更新一次而言,一切似乎都运行良好。但是,当 onResume() 被调用时,它不会停止通知。
我还没有编码内容的屏幕,因为在我继续之前我试图弄清楚如何关闭通知和 HandlerThread。
到目前为止,这是我的代码:
android - 任何处理程序都可以使用 Lopper.getMainLooper() 发布到 mainThread
假设我在我创建的另一个线程中,在 android 中我执行以下操作:
我是否理解这里的处理程序与线程相关联,但由于我使用的是 mainThreads 循环器,它会将 runnable 发送到 mainThreads 消息队列进行处理?如果这是真的,任何线程上的任何处理程序都可以接受另一个线程循环器发布到它?那是对的吗 ?
还是“new Handler(Lopper.getMainLopper())”使它成为 mainThread 处理程序?
android - 使用 Looper for Producer-Consumer 模式有什么好处?
在我的应用程序中,很少有带有while-on-volatile-boolean
循环和BlockingQueue
s 的线程用于它们处理的非常简单的对象消息(流水线架构)。
最近我遇到android.os.Looper
了和它的朋友一起上课,这似乎做同样的工作,但是它们被放置在 API 中,那么使用它们而不是带有显式队列的手写循环有什么好处(尤其是性能)?还是只是某种“API 糖”?