问题标签 [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.

0 投票
0 回答
382 浏览

android - Android ListView 无限循环双向

是否可以让 ListView 在两个方向上无穷无尽?我有 5 个我想要去的项目,比如 A->B-->C->D->E->A->B...我没有超过这 5 个项目,它是一个静态 ListView。就像一个具有相同 5 个项目的循环列表。我发现了一些无穷无尽的 ListView,它们在您处于底部时会加载新数据,但在两个方向上都没有。

谢谢!

0 投票
0 回答
70 浏览

android - Android Looper 循环在 android 2.3.3 上无限期运行

以下方法调用不会在我的应用程序的单独线程中终止。

Looper.loop();

我无法诊断为什么会发生这种情况。有什么建议么?

0 投票
0 回答
64 浏览

android - 一旦我调用了 loop(),我该如何在 Looper 实例上调用 quit()

我正在尝试在单独的线程中运行 Looper。本质上,在该线程上启动 Looper 的目的是让它运行适当的 SoundPool.OnLoadCompleteListener 实例。

所以代码明智:

但是,由于是无限循环,对循环的调用不会返回。那么我应该如何调用 Looper.myLooper.quit()?

0 投票
1 回答
1128 浏览

android - 在后台线程中发出的地理定位请求冻结了主线程

我的应用程序有以下工作流程:主活动有一个按钮,单击后启动第二个活动。在第二个活动中,有一个TextView显示位于指定地理点的城市。为了找到这个城市,我向我在后台线程中提出的Geocoder提出了一个请求。

我的期望:第二个活动(几乎)立即开始,当后台线程完成请求时,ui线程更新TextView内容。

会发生什么:第二个活动只有Geocoder完成其工作时才开始。为了清楚起见,我们可以关闭 wi-fi 并单击按钮 - 预计五六秒,Geocoder在日志中出现无法获取地理点的消息后,第二个活动启动。

我做错了什么?相关代码如下,完整的示例项目在 github 上

0 投票
0 回答
1232 浏览

android - 后台线程中的 PhoneStateListener

我在尝试在后台线程中运行 PhoneStateListener on* 回调方法时遇到问题。这是我到目前为止所做的:

首先,我编写了我的 PhoneStateListener 实现。类似的东西:

然后我创建了一个 Handler 类:

最后,从一个Service我开始一个新的HandlerThread并将我的附加PhoneStateHandler到它的'looper:

我所期望的是,诸如在线程而不是 UI 线程MyPhoneStateListener.onCallStateChanged()上执行的方法。mThread我正在利用这样一个事实,即当第一次创建 PhoneStateListener 时,它绑定到其当前线程的 Looper。这是无证的,但这就是实际发生的情况。

然而,我观察到的是,尽管该PhoneStateHandler.onHandleMessage()方法在HandlerThread's looper 中被调用(如我所料),但MyPhoneStateListener.onCallStateChanged()仍然在 UI 线程中被调用。

关于我的代码有什么问题的任何线索?

谢谢

0 投票
2 回答
1009 浏览

android - 处理程序是否是线程,具有处理程序和线程的 Looper 的作用是什么?

处理程序是否是线程?如果是,我们如何从这个 Handler(thread) 更新 UI?

如果我们使用 Looper 的概念,那是可能的。在这种情况下,它是否适用于任何线程?我对这些线程、处理程序和 Loopers 感到非常困惑。任何人都可以用一个例子来解释他们吗?处理程序是否是线程?如果是,我们如何从这个 Handler(thread) 更新 UI。

如果我们使用 Looper 的概念,有可能,在这种情况下它适用于任何线程吗?我对这个 Thread、Handler 和 Looper 感到非常困惑。任何人都可以用一个例子来解释他们吗?


“ Thread 和 Handler 有什么区别”这个问题只是关于 Handlers 和 Threads 的问题,并没有解释 Loopers 和它们的行为。并且接受的答案说“另一方面,处理程序是允许您与 UI 线程通信(更新 UI)的后台线程”,但根据下面“ben75”的回答,处理程序不是线程。因此,我不认为这是该问题的重复。

0 投票
1 回答
196 浏览

android - 是否可以在 BroadcastReceiver 的 onReceive 方法中退出 looper

使用以下代码以及何时onReceive触发,我收到以下错误

com.sample.common.UserActivity$1@41c2b4b0

问题是这个语句Looper.myLooper().quit(); 如何looper在收到下面代码中的广播后终止我的?

0 投票
2 回答
131 浏览

android - 我如何正确使用 Asynctask?

我正在开发一个 Android 应用程序,但 Asynctask 和 Looper 给我带来了更多问题,我不明白如何解决这个问题......这是我的主要活动:

***** 编辑 *****

视频库代码:

当我将活动更改为另一个再次包含异步任务的活动时,发生了错误:

**** 编辑 2 ****

如果我删除 Looper.prepare(); 在视频库中发生了另一个错误:

我该如何解决这个问题?我阅读了所有其他问题,但解决方案对我没有帮助。

0 投票
1 回答
998 浏览

java - 如何在主线程上调用 getLooper()?

在 Android 中,Main Thread &HandlerThread默认有 Looper 和 MessageQueue。我可以在 handlerThread 对象上调用 getLooper() ,但为什么不能在主线程上调用?

在实际场景中,永远不需要在 mainThread 上使用getLooper();我们可以打电话Looper.getMainLooper()。我只想知道为什么它不起作用。

我从 Java 的角度理解它,它Looper.getMainLooper().getThread()返回一个java.lang.Thread,并且 Thread 类没有getLooper()方法;但Android的主线程可以。主线程可以作为一个访问HandlerThread吗?

0 投票
1 回答
115 浏览

java - Loppers Android 错误

你好,我在 android 上有一堂课

它的工作并返回 gps,但是当我在另一个类中调用时,我会为 lopper.prepare 发送错误

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

获取位置(GPSTracker.java:69)

(GPSTracker.java:47)

哪里有错误?

问候!