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

android - Android,蜂窝动画(“动画器只能在 Looper 线程上运行”)错误

我有一个以前的项目,在这个项目中,我通常可以使用 ObjectAnimator 类来为这样的任何类设置动画

...这会很好,没有问题。现在,当我尝试运行相同的设置时,我得到

我试图在我的绘制循环中添加 Looper.prepare() 和 Looper.loop() 但无济于事。由于我以前根本不需要使用 Looper 类,因此这是一种不受欢迎的方法。

这可能是我的底层库(在这种情况下为处理安卓)的版本问题,还是由于 Honeycomb 从 3.0 更改为 3.1

谢谢

0 投票
3 回答
14038 浏览

android - 获取主线程的消息队列和处理程序

如何从另一个线程获取主线程的消息队列?Looper.getMainLooper() 获取主线程的looper,但我无法找到为另一个线程的looper 获取MessageQueue 的方法。此外,我如何获得主循环器的处理程序?我无法找到任何方法来获得它。

0 投票
2 回答
5221 浏览

android - Android:计划重复的 TimerTask 只被触发一次

好的,这是我遇到的一个非常奇怪的问题,我很确定我在某个地方搞砸了,但我不太清楚在哪里。

我正在尝试的是-

  • 安排 a每五秒Timer执行一次TimerTask
  • TimerTask依次执行一个(在这种AsyncTask情况下,它简单地休眠一秒钟,然后返回 AsyncTask 数量的静态计数)。
  • 最后,上述计数在 UI 中更新。

当然,适当Handler的 s 和Runnables 已用于将来自其他线程的异步消息发布到 UI。

此代码只执行一次。我希望它每 5 秒触发一次。这是代码。

注意:我不知道如何处理Looper. 经过反复试验,我把它放在那里!

谁能指出我做错了什么?

0 投票
2 回答
11391 浏览

android - Specifics on using Looper.prepare() in Android

I'm having a bit of trouble understanding how to use the Looper prepare()/loop()/quit() logic.

I have three threads: one is the UI thread, one is a game logic thread and the last is a network communication thread (a background thread, lives only while being used).

The game thread has many dependencies on the results of the network calls, so I wanted to spin the network thread off of the game thread and have a Handler post the result back.

Of course, since the UI thread is not involved I need to call Looper.prepare()... somewhere. I thought it should be called in the game thread, but I can't do that because loop() takes it over.

How do I go about posting back to the game thread from network thread with my handler?

0 投票
1 回答
8178 浏览

java - `Can't create handler...Looper.prepare()` 在继承的 Activity 中

我有一个Activity适用于所有代码的游戏(活动 A)。然后我为我的新游戏模式创建一个新的Activity(Activity B),即extendsActivity A。但是,当遇到 Toast 行时,Activity B 突然抛出异常(Activity A 可以很好地显示 Toast):

Can't create handler inside thread that has not called Looper.prepare()

Activity B 只覆盖了一个负载级别的方法,没有任何区别!

0 投票
1 回答
5958 浏览

android - Android:getMainLooper() 和 Looper.myLooper() 之间的区别

我现在正试图复活一个项目。getMainLooper() 出现异常...

我认为可能是 MainLooper 初始化有问题,并在此之前添加了 Looper.prepareMainLoop() 。

异常告诉我已经抛出该对象的循环器......

然后我尝试用 Looper.myLooper() 替换 getMainLooper() 并且它起作用了......

但我不明白为什么=)

事实上,我不明白这两件事之间的区别。我认为在我的项目中使用 getMainLooper() 的地方,它是应用程序真正的主循环器的最佳位置,但我得到了我得到的......

请解释。

感谢您的关注

0 投票
2 回答
711 浏览

android - Android Looper 混淆

Android 抱怨下面的代码需要调用 Looper.prepare。我曾尝试添加 Looper.prepare,但代码在第六次执行后崩溃,让我相信它并不像我想象的那么简单。任何建议将不胜感激。顺便说一句,我将这段代码包装在 AsyncTask 中,因为在执行查询时我需要一个进度微调器。如果有更简单的,请告诉我。

0 投票
1 回答
9871 浏览

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

单击按钮时,我正在使用简单的线程将 httpGet 执行到服务器,但是在执行后我得到了这个。

0 投票
3 回答
3686 浏览

android - Android:无法在未调用 looper.prepare 的线程内创建处理程序

我知道存在这种问题,但在这种情况下我很困惑。我正在使用以下代码:

当 location 返回 null 并调用 yoThereNull() 方法时,logcat 说:无法在未调用 looper.prepare 的线程内创建处理程序

但是当位置返回一个值时,一切都很好。吐司出现。

有人知道在我的情况下如何处理吗?我对java和android有点陌生,非常感谢您的帮助!:)

0 投票
4 回答
6400 浏览

android - Android:requestLocationUpdates 抛出异常

我试图通过 Android 中的 GPS 定期获取用户位置并将数据发送到远程数据库,但我得到了例外:Can't create handler inside thread that has not called Looper.prepare().

检索位置的方法在远程服务中,它非常基本:

我试着打电话Looper.myLooper().prepare();,但它仍然不起作用。我想我必须在Looper这里实现,但我不知道怎么做,因为我还是 Android 的新手。

这是我的服务的完整代码:

提前非常感谢!