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

android - Android Looper vs BlockingQueue?

Can anyone explain why someone should use the Android Looper feature to create a "pipeline thread" instead of making a normal thread that pulls tasks from a BlockingQueue? On the surface, it seems like two ways to do the same thing.

0 投票
2 回答
4168 浏览

android - LocationManager 和 Looper - 每个线程只能创建一个 Looper

我的应用程序有问题。我需要在某个时间间隔获取位置更新,因此基本上需要能够很好地控制 GPS 模块,这对于 Android 操作系统来说并不容易。基本上我需要每隔 5 分钟打开 GPS 2 分钟。我有计时,我可以两次获得位置,但随后应用程序因运行时错误而崩溃 - 每个线程只能创建一个 Looper。时间安排在服务类中完成并且运行良好,它删除了更新以及我遇到的所有问题。

我最初遇到了这个错误-“无法在没有调用 Looper.prepare() 的线程内创建处理程序”,我用下面的代码修复了这个错误,但现在我得到了唯一的一个 Looper 错误

我的 looper 线程看起来像这样(请不要苛刻,我对 Android 很陌生,哈哈)

就像我说的我是新手,我不知道如何使用处理程序。我确实从 StackOverflow 的一篇文章中得到了一些代码,只是用不同的方式使用它,但它不起作用。

请我真的需要帮助。感谢您的任何回复。

好的,我似乎找到了解决方案,只需要对其进行测试,然后再等待 7 个小时,我就可以发布答案了,哈哈。感谢您的任何意见和回复。

0 投票
2 回答
2211 浏览

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

我有一个带有 ASyncTask 的代码,问题是当我多次执行它时,它会因以下异常而崩溃: RuntimeException: Only one Looper may be created per thread

但后来我读到了这个:https ://stackoverflow.com/a/7781280/869180我记得我过去有过类似的错误,它与创建的 UI 内容(在我的情况下为 ProgressDialog)有关异步任务。

因此,我从 ASyncTask 中删除了所有 UI 内容,并且也删除了 Looper.prepare,以避免出现 RuntimeException,但知道我得到了这个:

这是代码:

我确定我错过了一些东西或者我做错了什么,但我无法在任何地方找到它。

非常感谢

0 投票
1 回答
341 浏览

android - Android 线程 - 队列可运行对象

我尝试使用 android 编写一个小游戏,但在线程方面遇到了一些问题。游戏的主循环在这个自己的线程中运行,基本上只是做这样的事情:

现在我想将触摸输入传递给我的 NativeGameLib。我想我在 UI 线程中使用视图的 onTouchEvent(),在里面创建一个可运行的,让它在主循环线程上执行。

但我真的不知道该怎么做。我已经看到有一个 Handler 和一个 Looper 类,并且我可以使用该处理程序将 runables 发布到 messageQueue 和 Looper.loop() 函数来处理队列。

据我了解,loop() 函数会无休止地检查新消息并因此阻塞线程。那么,我怎样才能将它与我的线程结合起来。我想在线程中做这样的事情:

有任何想法吗?谢谢。

0 投票
2 回答
650 浏览

android - Android Looper 线程是否使用处理能力?

这个问题可能也适用于 Java 线程的一般世​​界......

我有一个这样使用的线程(这是在run方法中):

我的问题是线程在等待将东西推送到处理程序时是否正在使用 CPU?还是真的“睡着了”?

有几个这样的线程会使系统陷入困境吗?

0 投票
2 回答
2535 浏览

android - Looper.prepare() 与 AlertDialog

我想在游戏中插入一个计时器。如果时间为 0,则会有一个 AlertDialog 告诉用户时间已到,并返回到上一个 Activity。这是方法(它在扩展 SurfaceView 的类中):

GameTimer 类是一个线程:

}

出现 AlertDialog,但应用程序崩溃,并显示以下消息:只有创建视图层次结构的原始线程才能触摸视图。但这是创建的线程......问题出在哪里?

0 投票
3 回答
3197 浏览

java - 创建新线程 - Android

我正在尝试实现一个循环器,以便我可以创建一个用于将 GPS 坐标发送到数据库的线程。我是 Java 新手,这真的很令人困惑,但也许你可以提供帮助。当按下按钮时,主活动调用以下类方法。该方法找到 GPS 位置,然后将其发送到另一个类的方法,该方法将纬度和经度(连同用户 ID)发送到数据库。我的应用程序有时会变慢和冻结,因此我似乎需要实施某种方法来为此过程创建一个新线程。有任何想法吗。我是菜鸟,所以要温柔。这是我的代码:

另一个问题,我是在此处添加循环器,还是在将信息发送到数据库的类中添加?它使用 HTTP Post 发送到 PHP 程序,该程序将信息添加到 MySQL 数据库。

0 投票
1 回答
390 浏览

android - 是否有必要从 UI 线程中调用 Looper.prepare() ?

如果我想在我的 Activity 的主线程中实现一个 Handler 对象,我是否需要事先调用 Looper.prepare() ,或者是否 Activity 已经有自己的内部循环器?如果我想从服务中实例化一个 Handler 实例,同样适用吗?

0 投票
1 回答
5629 浏览

android - 在服务线程上实现 LocationListener

我正在尝试在后台服务中运行位置更新。该服务正在运行自己的工作线程,它已经在做很多其他事情,比如套接字通信。我希望它也能处理位置更新,但这似乎只适用于一项活动。据我所知,这是由于工作线程上缺少消息循环。我想我需要在Looper.prepare()某个地方使用,但也许我需要另一个线程来处理位置请求?我似乎无法让模拟器响应任何地理修复事件,所以我一定做错了什么。

下面是服务代码,去掉了所有不相关的部分。

0 投票
1 回答
55 浏览

looper - 为循环内变量的每种情况分配唯一值

我有一个变量名主题。对于每个独特的主题,记录了 240 个响应延迟。根据该实验条件在受试者之间进行平衡。现在我想读取主题 ID(变量名称主题),如果它们是偶数,我应该将 order 分配为 1,或者如果主题 ID 是奇数,我应该分配变量 order 2。现在应该为每一行完成此分配(即每个主题240)

我使用了 if 循环:我得到的错误是....条件有length > 1并且只会使用第一个元素 我也尝试过 ifelse 像这样:

虽然生成了输出,但它没有以可变顺序记录/存储。请帮助实现这一点。