问题标签 [android-threading]
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.
android - 我需要使用android中的线程每秒增加一个数字
在这里,我使用 Handler 来做,但它只会增加一个数字一次。我希望它增加数字,直到我使用 handler.removeCallbacksAndMessages(null); 停止它。
谁能指导我如何实现这一目标。我只是安卓新手。
android - 这些在 UI 线程上运行代码的方法有什么区别?
关于如何在 UI 线程上运行代码,网上发布了不同的方法。它们都完成相同的任务,但是,我真的很想知道这些方法之间的区别。
方法一:
方法二:
方法三:
android - Android 会暂停 UI 线程以运行后台线程吗?
Android 线程调度程序是否保证主 UI 线程优先于所有其他用户(工作/后台)线程,或者用户线程是否会中断主线程?我的目标是在不过度同步我的 Java/Kotlin 代码的情况下避免竞争条件。
java - Android:另一个线程使 UI 无响应?
我正在从我的活动中启动一个新线程,该线程执行 10 秒操作,然后向 UI 报告runOnUiThread()
在 10 秒的操作期间,UI 变得无响应并且不响应任何用户交互。在这种情况下,我试图使用工具栏中的按钮关闭活动。引发ANR错误,但在工作线程完成后处理按钮单击。
虽然,当线程工作时,应用程序仍然能够显示旋转ProgressBar
,如果工作在 UI 线程上完成,则不会发生这种情况。
显示Profiler
UI 线程在此工作期间处于休眠状态,所以据我了解它应该是响应式的?我尝试过使用AsyncTask
,但这也不起作用。无论如何,这里有一些代码:
Thread
当窗口成为焦点时开始新的:
活动:
线:
我不确定这是否viewModel
与问题有关,但它是viewModel.getAllWords()
执行繁重的 10 秒 Room db 操作的方法。
这是Profiler
显示睡眠UI 线程和工作线程Thread
(AsyncTask #6)的快照:
编辑:
好的,所以我认为问题在于房间数据库操作 / viewModel
。getAllWords()
用释放的 UI 线程替换内容以Thread.sleep(10000);
进行用户交互,因此以下代码(出于某种原因)阻止了用户输入:
编辑2:
正如建议的那样,我现在使用onPostExecute()
一个接口来检索单词:
get()
已被删除,我只是执行任务,传入listener
处理回调:
这很好用,单词成功返回到我的活动,但在执行操作时UI 仍然无响应。
android - 如何在Android中获取库的包名?
我有一个 android 应用程序,我在内部依赖几个库。现在我正在尝试记录在单个组件级别(这意味着单个库级别)发生的崩溃,以便帮助我分析导致崩溃的组件。
有什么方法可以获取在他们的 android 清单中添加的库的包名称?
c# - 偶尔的 I/Choreographer(17165):跳过 ## 帧黑屏锁定,Android Xamarin c#
有时,在导入照片或从观看视频等活动返回应用程序时,我们的应用程序会锁定并出现黑屏,尽管某些功能仍会继续运行,例如敬酒。日志的结尾始终如一地说:
这是一个不一致且断断续续的问题,因此很难确定。任何想法,将不胜感激。我假设一些线程问题正在锁定 UI 线程,但因为它很少发生并且不容易重现,我真的不知道发生了什么。
编辑:这只发生在从一些意图活动(例如发送电子邮件、挑选照片等)返回应用程序时。我已经设法通过一些放置良好的断点使其可重现。
这是我认为负责的 c# 代码。我添加了 REF(1) 2 和 3,以指示我的断点在哪里。似乎 REF(2) 冻结时永远不会到达,因此有时永远不会重新创建被破坏的表面,因此永远不会恢复渲染......我们正在使用可记录的表面视图,这是它的子类,请原谅我多久它是:
这是日志的较长版本,因为它失败了,我有 3 个日志产生几乎相同的输出,如下所示:
android - 将数据插入本地数据库时,Android ProgressBar 不更新
我在更新进度条时遇到问题。在这里,我制作了一个自定义进度条功能,如下所示
然后从数据下载函数中调用它。数据下载完成后,我将数据插入 SQLite DB(本地 dB)。
在此处插入数据之前更新进度条。但是当数据声明插入进度条时不会更新。如何解决这个问题?谢谢大家。
android - RxJava 和 Realm 请求使应用程序跳帧
我在一个 android 项目中使用 RxJava 和 Realm 数据库。但有时按下按钮没有响应,你必须多次这样做才能让它在某个时候工作,并且 android 日志说 xxx 帧已跳过。我知道这与滥用 UI 线程有关。这是我的一些要求,有人可以告诉我他们有什么问题吗?Realm 希望我在使用响应的同一线程上执行 IO 请求(虽然不太确定)。
getAll 方法与改造。
领域提供者方法:
android - 在 RxJava 中创建同步间隔
我需要以 4,8,12,16... 秒的特定间隔运行2 个作业,另一个是 5,9,13,17...秒。
我在 RxJava 中使用了区间运算符。作业 B 需要在作业 A 之后运行。作业 B 应该在作业 A 运行时休眠,反之亦然。到目前为止,代码如下所示
在以下方面需要帮助
1. 使用 RxJava 实现上述目标的最佳方式
2. 运行 JobA 4 秒,然后运行 JobB 4 秒,然后再次重复该过程。
java - 后台线程中的进度条.setProgress(variable)
这是我在堆栈上的第一个问题(伟大的社区,谢谢!)
所以,我有这个问题:
我正在开发一个带有选项卡布局的 android 应用程序。每当我导航到“状态”选项卡时,我想显示一个根据变量值更新的循环进度条。我们称这个变量为 prog。此外,我想在 ProgressBar 的中心显示一个TextView,它显示相同的prog值。
我想出了这部分代码:
在这个片段中,我创建 ProgressBar 和 TextView,然后将它们传递给 Runnable,如下所示
我希望此更新在应用程序运行时一直运行(因此我忽略了AsyncTask)。一段时间后,ProgressBar 会停止更新,而 TextView 会继续工作而没有任何问题。
我一直在阅读可能的原因是调用setProgress(temp)可能会卡住 UI。但是,当 TextView 仍在工作时,我无法理解。
你能建议一个更好的方法来更新进度条吗?
谢谢!