问题标签 [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 - Android - 服务陷入循环?
我有一个将错误发送到 url 的服务,该服务在其他服务中工作良好,但是当我在 self 中出现错误时,会陷入非常糟糕的循环中。
我能做些什么 ?
android - HandlerThread 阻止 UI android
我正在修改适用于 Android 的 Google Camera2 API 示例,可在此处找到:https ://github.com/googlesamples/android-Camera2Basic
我正在将捕获的图像上传到 Cloudinary,显然需要在后台线程中这样做,这样 UI 就不会被阻塞。
然而,我遇到的问题是,当上传图像时,UI 实际上被阻止了,尽管据我所知,它不应该是,因为处理程序是使用 Looper 从后台线程创建的,如下所示:
ImageSaver 类,负责将捕获的图像写入磁盘,如下所示:
ImageSaver 在此处添加到 Handler 中:
我将不胜感激任何帮助或建议,为我指明正确的方向。
android - 关闭 Android Looper
即使没有被其他代码引用,似乎Looper
(至少是用创建的那个)也永远不会被垃圾收集。HandlerThread
我知道quit()
和quitSafely()
方法,但是在我的应用程序中,我不确定谁将负责调用这些方法之一。
关闭Looper
具有多个活动的应用程序的正确方法是什么,以及Handler
在此创建的 s 的Looper
生命周期与其中的活动不同。它不能是onDestroy()
任何活动。如果我不关闭它并且该进程没有被操作系统杀死 -Looper
可能会在下一个应用程序“启动”时创建新的并且这个会泄漏。或者,创建一次,存储在静态字段中,永不退出,让它泄漏一次。到目前为止,最后一个似乎是最安全和最容易实施的。
android - 调用 Handler 时是否需要调用 Looper.prepare()
我需要了解Looper。Looper 将咨询适当的处理程序来发送和处理与线程的 MessageQueue 关联的 Message 和 Runnable 对象。
默认情况下,线程没有与之关联的消息循环,因此也没有 Looper。要为线程创建 Looper 并使该线程专用于从消息循环中串行处理消息,您可以使用 Looper 类。
以下是我没有明确调用 Looper 的代码
这是否意味着任务/可运行没有放入队列?上面的代码和这个有什么区别
他们都访问同一个处理程序。他们都工作正常。
java - 无法在后台获取 GPS 坐标(使用处理程序)- Android
我正在尝试通过处理程序获取 GPS 坐标。下面是代码:
不知何故,代码总是导航到 catch 块。我得到这个错误:
这是处理程序:
看过各种帖子。不知何故无法弄清楚。如何准确实现 looper.prepare() ?有任何想法吗 ?
android - 重复循环
这是我的 FileObserver 代码:
它返回 2 份报告来记录,而不仅仅是一份。这意味着一旦实施,将发送 2 封自动电子邮件,这并不理想。
谁能帮助我的语法?
android - 保持调用线程直到多个异步任务完成
我有一个后台线程,它调用 3 个异步任务同时执行任务。调用线程充当 3 组这些任务的队列。
所以基本上我需要同时调用 3 个异步任务,一旦它们完成,我想调用队列中的下三个任务并重复。
但是,在三个异步任务完成之前,我无法暂停调用者线程。结果,队列中的下三个任务在前三个任务完成之前开始运行。
那么无论如何要保持调用者线程直到异步任务完成。我知道您可以在 asynctask 中使用 .get() ,但它不会使三个 asynctasks 同时运行。
android - 调用方法中的 Looper.Loop() 异常
我正在调用一个方法:
和方法:
但是我得到以下异常:
dialog.show()
部分。
这是因为调用实际上发生在一个新线程上吗?如果是,如何让它在 UI 线程上运行?如何只显示对话框?
谢谢!
android - 领域和 Looper 恶作剧
我在 Loopers 和 Realm 上遇到了麻烦。
我在 onCreate() 中有一个Activity
实例化它Presenter
,然后调用它的一个公共方法initFirstLaunch()
:
请注意,这playerViewContract
是我在这种情况下的活动。
我的问题是onChange()
有时会调用它,当它调用时它会阻塞我的 UI 线程(并最终引发 a OutOfMemoryError
)。我的猜测是我不在一个弯针线程中,但是当我Looper.prepare()
在任何地方打电话时它崩溃说我已经在一个。
发生了什么 ?
谢谢
编辑:添加 initWithCourseDetailed 代码