问题标签 [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 回答
1456 浏览

android - java.lang.RuntimeException:Looper.prepare() 的问题

我在我的应用程序中使用 AsyncTask,代码是,

和 GetGpsCoordinates.class,

如果我使用 looper.prepare(),我会遇到异常。这是我的日志猫,

我在 onSensorChanged() 中调用此异步任务,即,对于每个传感器值更改,都会执行此线程。请帮帮我。我对这个例外感到非常沮丧。谢谢您的帮助!!

0 投票
2 回答
1001 浏览

java - Android Gingerbread:无法在未调用 Looper.prepare() 的线程内创建处理程序

我有这样的代码:

Timer 应该每 10 分钟执行一次 CheckMessageTask。问题是出现了这个错误:

CheckMessageTask 扩展了 Asynctask 并且不运行 UI 代码,所以这不是原因。该代码适用于 Android Jelly Bean 4.1.2,但不适用于 Android Gingerbread。我该如何解决?

0 投票
1 回答
470 浏览

android - Android:立即执行挂起事件?

我有一个微调器,可以过滤 OnItemSelected 中的适配器。像这样:

所以现在我想做:

然后作为我的下一条指令:

第二条指令依赖于已经完成过滤操作的 onItemSelected 回调,因为 getPosition 只有在应用过滤器后才返回正确的值(显然)

所以我认为这段代码不是最优的,因为

在后台完成并且 listView.setItemChecked(position, true) 在完成过滤之前当然会被调用。

所以我这样做:

我注意到在 spinner.setSelection(...) 之后并没有立即调用 onItemSelected,而是在一段时间后调用。这会导致 onItemSelected 回调中的 filter() 也被执行,而不管 adapter.ignoreFilteringRequests()(在 setSelection() 之后再次设置为 false)。是什么导致了这种情况,我该如何避免这种情况?我在想这可能与未立即执行的 UI 线程的消息队列有关,因此也不会立即调用 onItemSelected。如果是这种情况,我如何使消息队列(循环器?)在继续之前立即处理所有待处理的事件?

有没有更优雅的解决方案我可能忽略了?

0 投票
3 回答
10360 浏览

android - GPS Android 中的 LocationManager requestLocationUpdates()

我开发了一个应用程序作为处理基本 HTTP 请求的服务。当手机收到一个 HTTP Post 请求http ://IP:port/gps/on时,它应该像下面这样注册到 GPS 监听器:

但是,由于此代码存在于处理程序中,我收到以下错误:

如果我必须为此使用处理程序/ Looper,您能告诉我吗?以及如何做到这一点的任何例子。提前致谢!

注册 GPS 的代码由处理 HTTP 请求的类调用:

0 投票
1 回答
2023 浏览

android - Android - 无法在处理程序上接收消息

ListView 是从后台线程加载的,该线程调用从 SQLite 数据库获取值并将它们加载到 ArrayList 中。这个显示结果的线程调用了一个CustomHandler,但它不接收来自线程的消息。

这是一个示例代码:

处理线程线程;

我不明白为什么我的处理程序不在 Log.i() 中显示文本

这是我的完整代码:

第1部分 :

第2部分 :

如果 Handler 没有收到消息,我无法显示我的 listView。


我通过编辑这样的代码找到了解决方案:

我通过覆盖它来将handleMessage(Message msg) 实现到处理程序创建中。根据 pskink 的建议,现在我正在使用 CursorAdapter 类重写我的代码。

0 投票
1 回答
116 浏览

java - 代码执行可以被主事件循环中断吗?

我说的是一个线程。例如,我有一个 Activity ui 和以下方法:

所以我的问题是,doComplicatedStuff() 是否可以被 onClick() 处理程序的执行中断(当然,我们有一个点击按钮)?

现在我认为 onClick() 处理程序不能中断 doComplicatedStuff() 执行,直到 doComplicatedStuff() 结束其工作。因为在代码执行的顶层我们有一个 Looper,它接受下一个消息事件并将其分派给 Handler(handler 然后调用 onClick() 方法)。换句话说,Looper 仅在该线程中没有任何执行方法时才执行您的工作。

0 投票
2 回答
443 浏览

android - DashClock 扩展中并不总是调用 LocationListener onLocationChanged

我有一个 DashClock 扩展,可以通过单击它或按时间间隔刷新,所以我使用的是 AsyncTask。我也使用 LocationListener 因为我需要用户的位置。有时,onLocationChanged 不会触发导致我的扩展不更新,我为此工作了两周,现在尝试不同的方式,但没有任何效果像它应该的那样。

这里有完整的代码。

onLocationChanged在第 530 行

我的AsyncTask在第 290 行

调用requestSingleUpdate的函数在第 197 行

我很确定这是一个线程问题,但我不知道如何解决它......

如果您需要更多详细信息,我很乐意提供。

编辑:我终于想通了,是我的 AsyncTask 在获得新位置之前就死了,所以我更改了天气更新逻辑,它现在可以工作了!

0 投票
2 回答
4291 浏览

android - A/Looper:无法创建尾流管道。错误号=24

我们正在构建一个可以制作大量动画并下载大量图像的应用程序。经过一定数量的交易(可预测的数量)后,应用程序因错误而崩溃:

我们在代码中没有使用 Looper,但是我们使用的一些库确实使用了 Looper:

  1. ActionBarSherlock:我不认为这是罪魁祸首
  2. facebook:我不认为这是罪魁祸首
  3. Nineoldandroid:这个动画库可能是罪魁祸首
  4. 凌空:这可能不是罪魁祸首
  5. 毕加索:这可能是罪魁祸首

是否有人在使用这些库中遇到过此 Looper 错误并且知道如何修复?

0 投票
2 回答
15787 浏览

android - Looper 在哪里“退出”?

我有一个活套问题。我打电话looper.prepare(),做某事后一切正常。但是,如果我旋转设备,我会在准备时遇到异常。

我试图退出looper,但它什么也没做。

这是我的异步任务:

想法?

0 投票
1 回答
255 浏览

android - HandlerThread 需要发布到自己的队列

我有一个扩展 HandlerThread 的 MyThread,我需要在 MyThread 类中将 runnables 发布到它的队列中。

我知道如何做到这一点的唯一方法是致电

然后h.post(r)发布 Runnable r。

但是我不确定在哪里放置新的 MyHandler() 行,因为需要先启动线程,然后才能获得 looper。还有另一个类启动 MyThread 并向其发布可运行文件,但现在我也需要在类中执行此操作。有任何想法吗?

编辑:

两条注释行产生相同的结果: r 在主线程中执行,而不是在我想要实现的这个 HandlerThread 中执行。