当前位置: 首页 > 知识库问答 >
问题:

Android:正确关闭线程和活套?

黎鹤轩
2023-03-14

我像这样关闭了我的线程:thesensor.getlooper().quit();TheSensor.quit();

但我还是得到了下面的错误。我需要做什么来忽略其余的消息

03-14 00:42:12.237: W/MessageQueue(10027): Handler (android.os.Handler) {41d5e6d8} sending message to a Handler on a dead thread
03-14 00:42:12.237: W/MessageQueue(10027): java.lang.RuntimeException: Handler (android.os.Handler) {41d5e6d8} sending message to a Handler on a dead thread
03-14 00:42:12.237: W/MessageQueue(10027):  at android.os.MessageQueue.enqueueMessage(MessageQueue.java:294)
03-14 00:42:12.237: W/MessageQueue(10027):  at android.os.Handler.enqueueMessage(Handler.java:618)
03-14 00:42:12.237: W/MessageQueue(10027):  at android.os.Handler.sendMessageAtTime(Handler.java:587)
03-14 00:42:12.237: W/MessageQueue(10027):  at android.os.Handler.sendMessageDelayed(Handler.java:558)
03-14 00:42:12.237: W/MessageQueue(10027):  at android.os.Handler.sendMessage(Handler.java:495)
03-14 00:42:12.237: W/MessageQueue(10027):  at android.os.Message.sendToTarget(Message.java:360)
03-14 00:42:12.237: W/MessageQueue(10027):  at com.sj.framework.tiltsensor.TiltSensor.onSensorChanged(TiltSensor.java:158)
03-14 00:42:12.237: W/MessageQueue(10027):  at android.hardware.SystemSensorManager$ListenerDelegate$1.handleMessage(SystemSensorManager.java:256)
03-14 00:42:12.237: W/MessageQueue(10027):  at android.os.Handler.dispatchMessage(Handler.java:99)
03-14 00:42:12.237: W/MessageQueue(10027):  at android.os.Looper.loop(Looper.java:137)
03-14 00:42:12.237: W/MessageQueue(10027):  at android.app.ActivityThread.main(ActivityThread.java:5306)
03-14 00:42:12.237: W/MessageQueue(10027):  at java.lang.reflect.Method.invokeNative(Native Method)
03-14 00:42:12.237: W/MessageQueue(10027):  at java.lang.reflect.Method.invoke(Method.java:511)
03-14 00:42:12.237: W/MessageQueue(10027):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
03-14 00:42:12.237: W/MessageQueue(10027):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
03-14 00:42:12.237: W/MessageQueue(10027):  at dalvik.system.NativeStart.main(Native Method)

共有1个答案

邓鸿雪
2023-03-14

你试过quitsafe方法吗?api文档中的描述看起来像什么。它将禁用MessageQueue,这样sendMessage将返回false并不成功地传递消息。安全地

安全退出活套。

一旦处理完消息队列中所有已交付的剩余消息,将导致loop()方法终止。但是,在循环终止之前,将不会传递将来有到期时间的挂起的延迟消息。

 类似资料:
  • 问题内容: 下面的代码尝试做到这一点。 该代码将永远循环并检查是否有任何待处理的请求要处理。如果存在,它将创建一个新线程来处理请求并将其提交给执行者。一旦所有线程完成,它将休眠60秒,然后再次检查未决请求。 我的问题是这些线程完成的大多数处理都是针对数据库的。该程序将在Windows计算机上运行。当有人尝试关闭或注销计算机时,这些线程会发生什么?如何正常关闭正在运行的线程以及执行程序? 问题答案:

  • 问题内容: 我已经看到了许多使用HttpURLConnection + InputStream并在使用后关闭(或不关闭它们)的示例。这就是我想出的方法,以确保完成后所有内容都关闭,无论是否存在错误。这有效吗? 谢谢 问题答案: 是的。在做最后的端部将是最好的主意,因为如果代码某处出现故障时,程序将无法达到,直到,报表,我们catch语句之前保持… 如果代码在某处失败并且在程序之间引发异常,则无论引

  • 问题内容: 我想在Java中实现SSL代理。我基本上打开了两个套接字,并运行了两个线程,这些线程将写入他们从中读取的内容,反之亦然。每个线程如下所示: 每个线程只会关闭输入套接字,因此最终两个套接字都会关闭。 但是,如果我想使用an 怎么办?似乎那里不支持这些方法。这是我得到的例外。 我想出的是: 每当套接字结束时,我都必须捕获并忽略套接字末尾异常。 我的问题是: 如果不受支持,我怎么会从那里得到

  • 我正在处理一个需要使用jFileChooser Swing窗口的项目。当单击“取消”或“打开”时,窗口不会关闭。在查看了StackOverflow上的许多文章以及JFileChooser教程和文档之后,我不知道是什么导致了这个重复的问题。 我正在与NetBeans一起使用它的swing编辑器。我也在Eclipse中尝试了该程序作为测试,并收到了相同的结果。

  • 我正在通过蓝牙连接2台设备,当我按下一台设备上的注销按钮时,我想向另一台设备发送消息(告诉另一台设备也注销),关闭蓝牙连接,并关闭当前活动(即返回我的登录活动) 问题是我总是得到这个异常,这让我觉得我没有正确地关闭我的连接: 是从输入流读取的位置 当按下logout时,我基本上销毁了< code>MainActivity,并在< code>onDestroy()中停止了我的蓝牙服务: < code

  • 问题内容: 我正在使用Play编写一个部署在Tomcat中的webapp。因为该应用程序不会处理大量数据,所以我在Hibernate中使用默认的H2数据库。当我想部署新版本的应用程序时,我关闭了tomcat,擦除了旧的webapp和WAR,添加了新的WAR,然后开始备份。 直到几天前,当我添加数据库组件时,它一直有效。现在,我经常无法重新部署该应用程序。当我删除旧目录时,它将使用以下结构自动重新生