问题标签 [android-runonuithread]

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 投票
2 回答
1249 浏览

android - 如何在凌空响应侦听器中更新 UI?需要 runOnUiThread 吗?还是 Onresponse 自己将控制权交给 UI 线程?

在使用 volley 库时,如果我想更新响应侦听器中的 listview 适配器,是否应该使用 runOnUiThread 来完成?或者它已经在 UiThread 中了?

0 投票
2 回答
674 浏览

android - 如何显示来自另一个类中的线程的 Toast 消息

我正在开发一个应用程序,我需要显示来自另一个类中运行的线程的 Toast 消息。我阅读了有关 runOnUiThread 的信息,但它不起作用。在主要活动中,有一个对另一个 java 类的调用,这里有一个到网络服务器的连接,我处理来自服务器的 Http 消息。在这里,如果我收到 204 条消息,我需要敬酒。如何实现 runOnUiThread?

谢谢

0 投票
0 回答
162 浏览

android - Android runOnUiThread 不显示

因此,我在进行维护时遇到了一个 Android 应用程序的问题,他们在应用程序上有一个回调,当某些事情发生时触发,并且有一个 runOnUiThread。但是,它似乎不起作用,但是。当我最小化应用程序并恢复它时......它显示了更改。(我已经尝试过 invalidate 和 postInvalidate ......唯一似乎工作的命令是重新创建,但它显示黑屏并重新加载应用程序,我不希望这种情况发生)

编辑

从这部分代码调用回调:(onTagRead 方法是蓝牙连接设备的本机方法。这都在 Running Activity 类中)

0 投票
1 回答
4815 浏览

java - runOnUIThread() 中的 NullPointerException

我在themoviedb.org创建了一个查询REST API的电影应用程序。在从网格中选择电影时,用户会被带到一个详细信息屏幕,其中显示有关电影的更多详细信息,详细信息是预告片列表和评论列表。问题是有时我用于填充评论和预告片列表的代码会遇到 NullPointerException。它并不总是发生,也不是特定于特定的电影条目,它是完全随机的。

准确地说,当我在网络响应成功后使用 runOnUIThread() 中的数据刷新 RecyclerView 适配器时,我随机得到 NullPointerExceptions。

这是 GitHub 存储库链接 - https://github.com/Hackertronix/Project-Motion/tree/Stage_2

以下是我的代码以及堆栈跟踪

我添加了注释以显示行号

详细信息Fragment.java

堆栈跟踪

0 投票
1 回答
2690 浏览

java - 在片段中隐藏/显示操作栏

我有MainActivity扩展AppCompatActivity。在这 3 个片段中,可以通过滑动手势进行更改。我想删除中间的操作栏。并在用户滑入第一个或第三个片段时再次添加操作栏。

我有以下代码:

但是,它给了我以下警告:

跳过了 45 帧!应用程序可能在其主线程上做了太多工作。

我试图把它放在:

应用程序滞后。我怎样才能使它顺利?

0 投票
2 回答
367 浏览

java - runOnUiThread 不更新列表视图

我认为我查看了几乎所有线程似乎都不起作用。我有一个聊天,我试图每秒更新列表视图,我在另一个线程上执行它但是,我使用runOnUiThread虽然它仍然不会更新我记录返回,而且似乎每秒都有一个返回正确数据。编码

获取数据的消息函数

类自定义适配器

提前致谢

更多信息

当我最初在 onCreate 中调用消息函数时,它工作正常

0 投票
1 回答
501 浏览

java - 代码在单独线程上运行的 ANR

背景:

这个应用程序是一个简单的 Wifi 管理器,收集/扫描并在列表视图中显示结果。由于此扫描按间隔扫描,因此我创建了一个线程并在扫描之间设置了一个 Thread.sleep(interval) ,因此在处理完成后,它会休眠 X 毫秒。

我对我的代码进行了一些“更改”/更新,现在我的应用程序进入 ANR 状态并显示调试器消息"Signal Catcher"]: reacting to signal 3

完全错误:

问题:

添加权限之前:

onCreate()main 中,我有我的代码来启动我的扫描循环并开始输出数据,这有效并且按预期输出数据。

线程代码:

添加权限后:

在做了一些研究之后,我发现我应该Initiate scan从 onCreate 中删除这个方法,因为它会阻塞任何线程调用,我将它添加到 onStart 并添加了一个RunOnUITHD(Runnable r)仅访问 UI 以使用基本代码进行更新的方法。

新线程代码:

处理程序定义为:handler = new Handler(context.getMainLooper());

RunOnUITHD

我仍然收到 ANR(最新的 ANR Traces)而且我不知道,我不知道我做错了什么。

更新:

我记录了主线程代码的每一部分,它按预期运行,循环和休眠,但 UI 没有更新......

将日志记录代码添加到new Runnable()我注意到以下内容:

向例如的 ThreadCounter 添加断点ThreadCounter==11应导致 10 个“更新线程...”和“完成更新...”循环,如下面的代码所示。

相反,我只注意到日志中显示的 4 个循环。

运行进一步的测试,ThreadCounter==3记录的循环 = 1,所有进一步的测试导致更新 setText 的 1 个记录循环。

由于此线程是通过checkPermissions()my 中的自定义方法启动的@Override onStart(),因此我显示了一条 toast 消息,然后是 checkPermissions

尽管进行了这些测试,但 Toast 消息显示(不会消失)并且 setText 在 1 个循环上更新,这意味着threadRefreshTextView 包含以下文本:“# Refreshed Times : 1”

0 投票
1 回答
1648 浏览

android - 如何对包裹在`runOnUiThread`中的代码进行单元测试?

我有一个调用runOnUiThread如下的函数

我想 UnitTestmyFunction以确保myObjecthas call myObjectFunction。但鉴于它是 wrap in runOnUiThread,我无法理解它。

我如何进行单元测试以确保runOnUiThread调用其中的代码?

0 投票
3 回答
422 浏览

android - Android 定时器任务问题

加载 ListView 时我需要一个计时器。喜欢“等待 [(Timer) 42] 秒购买元素”我想向用户显示 Textview 喜欢它。我不能在 ListView 中使用线程...

我从 runOnUiThread 得到错误。为什么 ?我不能在 Listview 中使用计时器。

0 投票
2 回答
99 浏览

android - How can I display a view without waiting for the rest of the UI thread to finish?

Basically I have a popup window that I am trying to launch and have open while the rest of my UI loads(it's some canvas calls that take a second or two), but the behavior I'm getting is that the popup window doesn't display until everything has finished running. I'm literally just calling show on the popup window right before the canvas draws. Nothing fancy. How can I make the popup window show up first, so I can obscure the rest of my loading?