android-其他线程中的无限导致高cpu负载。为什么?

android-其他线程中的无限导致高cpu负载。为什么?,android,Android,请查看屏幕截图超链接。有人知道发生了什么吗 我想通过while循环中的套接字进行持续检测并发送消息。但这会导致我的应用程序cpu负载过高,速度越来越慢,最终停止。所以,我只是简单地把代码像截图一样。问题仍然存在。如果我不能像截图那样编写代码,当然我可以达到我想要的。有人知道吗 我通过android studio进行监控,在“android.os.MessageQueue.nativePollOnce”中获得97%的运行率 感谢您的帮助~“线程有一个while循环来处理有关套接字的任务” ANRs

请查看屏幕截图超链接。有人知道发生了什么吗

我想通过while循环中的套接字进行持续检测并发送消息。但这会导致我的应用程序cpu负载过高,速度越来越慢,最终停止。所以,我只是简单地把代码像截图一样。问题仍然存在。如果我不能像截图那样编写代码,当然我可以达到我想要的。有人知道吗

我通过android studio进行监控,在“android.os.MessageQueue.nativePollOnce”中获得97%的运行率

感谢您的帮助~

“线程有一个while循环来处理有关套接字的任务”

ANRs表示您在主线程上做了过多的工作。如果不显示您的代码,我们无法确定是什么原因导致它,但由于您提到了一个while循环,我猜您不是在新线程上运行,就是在其他地方阻塞了UI线程。

该线程有一个while循环来处理有关套接字的任务


ANRs表示您在主线程上做了过多的工作。如果不显示您的代码,我们无法确定是什么原因导致它,但由于您提到了while循环,我猜您不是在新线程上运行,就是在其他地方阻塞了UI线程。

谢谢您的回复。谢谢您的回复。我通过一个可运行的工具创建一个线程。这个runnable中唯一的内容是“while(true){}”。然后它会导致速度越来越慢,然后停止。我想我可能在Android编程中失去了一些概念。你能给我一些建议吗?非常感谢你!我添加了一个屏幕截图和一些信息。如果你有空,请看一看。非常感谢你!该线程将在应用程序运行期间继续运行,因此如果您关闭并打开该应用程序,它可能会在另一个线程仍在运行时启动另一个线程。此外,给定的线程将消耗它可以得到的所有CPU时间,因为它从不停止检查它是否可以停止。(如您所评论的,
Thread.sleep()
可以缓解这一问题)。你需要仔细阅读android的生命周期,找到一种不需要无限循环的数据处理方法。谢谢你的回复。谢谢你的回复。我通过一个可运行的工具创建一个线程。这个runnable中唯一的内容是“while(true){}”。然后它会导致速度越来越慢,然后停止。我想我可能在Android编程中失去了一些概念。你能给我一些建议吗?非常感谢你!我添加了一个屏幕截图和一些信息。如果你有空,请看一看。非常感谢你!该线程将在应用程序运行期间继续运行,因此如果您关闭并打开该应用程序,它可能会在另一个线程仍在运行时启动另一个线程。此外,给定的线程将消耗它可以得到的所有CPU时间,因为它从不停止检查它是否可以停止。(如您所评论的,
Thread.sleep()
可以缓解这一问题)。你需要仔细阅读android的生命周期,找出一种不需要无限循环的数据处理方法。这个runnable中唯一的内容是“while(true){}”。然后它会导致速度越来越慢,然后停止。我想我可能在Android编程中失去了一些概念。谁能给点建议吗?非常感谢你<代码>while(true)循环体中有什么?我将while循环中的代码更改为空。问题仍然存在。变得越来越慢。顺便说一句,循环没有在UI线程上运行。所以你在
while(true)
循环中什么也没做?这毫无意义。。。(即使是在后台线程中)您想要实现什么?我通过一个可运行的I实现创建一个线程。这个runnable中唯一的内容是“while(true){}”。然后它会导致速度越来越慢,然后停止。我想我可能在Android编程中失去了一些概念。谁能给点建议吗?非常感谢你<代码>while(true)循环体中有什么?我将while循环中的代码更改为空。问题仍然存在。变得越来越慢。顺便说一句,循环没有在UI线程上运行。所以你在
while(true)
循环中什么也没做?这毫无意义。。。(即使在后台线程中)您希望实现什么?