问题标签 [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.
java - 当不能在 UI 线程上运行 Runnable 时,如何延迟生成的线程?
我在上一个问题中遇到问题,我不确定我的代码是否存在内存泄漏。一些答案与它在 UI 线程上运行并因此阻塞有关。是的,它在 UI 线程上运行并且不会产生新线程。
所以为了解决这个问题,我使用Thread
而不是Handler
在 UI 之外生成一个新线程。现在的问题是我无法像在 UI 线程中运行的那样延迟它。
这是我之前的问题,我的原始 UI 线程代码是:这个 Runnable 是否可以避免内存泄漏?以下是生成新线程的更新代码:
它只是设置视图文本并附加5*5
.
一旦我启动应用程序,它就会自行退出,我不明白为什么。有些东西告诉我我以错误的方式延迟它或使用runOnUiThread
错误。即使更改txtview.setText("Hola Mundo"+test);
为runOnUiThread( txtview.setText("Hola Mundo"+test) );
不会编译给出错误:'void' type not allowed here
.
简而言之:计算(5*5
在这种情况下)应该在单独的线程上完成以避免阻塞主(UI)线程,并且应该在 UI 上设置文本,从单独的线程中获取计算项。您自己的一个简单示例也可以。
更新
我已经发布了我自己的问题实施的答案AsyncTask
。
android - onItemClicked 从片段到活动
我有一个片段中的项目列表视图。当我单击其中一个项目时,它将打开另一个活动并显示该项目的详细信息。但是当进度条加载时,整个应用程序崩溃了。
编辑ProductActivity.java
刚刚进行了适当的对齐
日志猫:
android - 通过 UI 或非 UI 线程发送广播?
在单独的线程中发送广播(在我的情况下为 ACTION_APPWIDGET_UPDATE)是否比 UI 线程(可运行)更好(对于性能)?或者在 UI 线程上这样做是可以接受的做法吗?
android - asychtask 中的 ruOnUiThread 出错
我正在尝试从服务器解析一些数据并将数据与数据库中的数据进行比较......一切似乎都很好......除了即使比较数据发生变化我也只得到相同的值......我会用编码...
在下面的代码中,有 textviews tv3 和 tv4 ......即使比较数据,即 shopid 改变了,它也显示了来自 json 的第一个数组的值......
当我尝试调试时,我发现 runOnUithread 中的 run() 在 2-3 个循环后调用...我不知道这里发生了什么...请帮助解决问题...
编辑:在调试时,当我跳到每一行时,它没有显示任何错误...但是当我尝试使用 F9 跳到断点时,它显示错误...
编辑:2:由于代码有点长,我只是删除了一些不需要的部分......
}
android - 在android上以编程方式使钢琴键无效
我有扩展 View 并将此类的对象放在布局上的类 Key。键是钢琴的键,当它被按下时,它应该改变图像到按键。为此,它具有更改状态、播放音符并调用 invalidate() 方法的方法 press() 和更改状态并调用 invalidate() 方法的 release()。我想以编程方式播放声音并创建类 Recorder 的对象,我在其中放入 ArrayList 对将要按下的键的引用。同时,我在下一个音符之前创建带有时间延迟的 ArrayList 持续时间。它很好地演奏了我的旋律,但它不会重绘我覆盖的键和锁定方法 onDraw()。我想展示按键是如何按顺序播放的。如何解决?我试图运行像 runOnUiThread 这样的任何线程来播放这首旋律,但没有任何进展。
android - Android RunOnUIThread 延迟 ListView 填充
我正在使用 Azure 移动服务来支持我的 Android 应用程序,在这种情况下,我正在尝试使用此方法检索一些数据库数据:
然后我使用检索到的数据填充我的列表视图:
但是,listview 填充会延迟,有时 listview 中不会显示任何数据,但这需要时间。大约 3 秒的延迟后,数据被填充,在此之前,列表视图会使用它们的占位符填充列表视图项目。你明白了。
如何在显示视图之前等待检索完成,以便填充列表视图?
android - 从类中启动和停止 UI 线程上的进度条
是否有更流畅/更简单的方法来执行以下操作?我在一个类中有一个方法,它在线程运行时显示进度条。这段代码有效,但它看起来有点过于笨拙,有 3 个步骤。
android - 从应用程序类更新 GUI
我正在尝试在所有活动的覆盖上显示日志。我找到了这个https://stackoverflow.com/a/19037235/3370924答案,它在应用程序类中实现了覆盖。我在 LinearLayout 中添加了一个 TextView 来显示我的日志。
起初它可以工作,但是 android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
当我打开一个新 Activity 并尝试向 TextView 添加一个新字符串时出现错误。
通常我使用 runOnUiThread() 但此方法在 Application 类中不可用。谁能帮帮我吗?
android - 如何在那个时候将折线添加到谷歌地图并显示进度对话框?
我想在屏幕上绘制折线时显示进度条。我知道折线仅在 UI 线程中绘制。我试过nextcode,但这没有帮助。没有进度对话框
android - 在 UI 线程上运行方法
我的问题似乎很简单,但我的逻辑似乎不对。我正在尝试使用 UI 线程从其他类运行方法。我可以简单地通过像这样包装我的方法来做到这一点
但我的目标是有一个类来包装要在 UI 线程上运行的方法runOnUiThread()
,因为在一个类中几乎有 5 次似乎非常不整洁。任何指针?