问题标签 [android-thread]

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 投票
1 回答
38 浏览

android - Android - 将数据从 MainActivity 发送到 Thread

在我的 Android 应用程序中,我需要将任何更改从我的 UI 发送到线程。
用户更改文本视图,我需要获取值并发送到线程处理。可能吗 ?
我只看到了从线程到 UI(通过runOnUiThread)的解决方案,但没有看到从 UI 到线程的解决方案。

0 投票
7 回答
10950 浏览

android - 如何在后台线程上执行 LiveData 转换?

我需要将对象返回的一种类型的数据转换为后台线程上的LiveData另一种形式,以防止 UI 滞后。

在我的具体情况下,我有:

  • MyDBRowlong对象(由原始s 和s组成的 POJO String);
  • 一个Room DAO实例通过LiveData<List<MyDBRow>>; 和
  • 期望更丰富对象的 UI (将原语膨胀为例如日期/时间对象MyRichObject的 POJO )

所以我需要将我LiveData<List<MyDBRow>>的转换成一个LiveData<List<MyRichObject>>,但不是在 UI 线程上

Transformations.map(LiveData<X>, Function<X, Y>)方法执行此需要的转换,但我不能使用它,因为它在主线程上执行转换

将主线程上的给定函数应用于 LiveData 发出的每个值source并返回 LiveData,它会发出结果值。

给定的函数func将在主线程上执行。

什么是进行LiveData转换的干净方法:

  1. 在主线程之外的某个地方,并且
  2. 仅在需要时(即仅在观察预期转换时)?
0 投票
1 回答
2743 浏览

android - 在后台线程上运行独立 Completable

我正在尝试创建一个可完成并在后台线程上运行它,但是当我订阅时它Action没有run()调用Schedulers.io()

基本上我想通过 RxAndroid 做以下事情:

使用 RxAndroid 我正在执行以下操作:

如果我这样做,它的run()方法不会被调用Schedulers.io(),但如果我这样做,它就会被调用subscribe()

当我订阅Schedulers.io().

0 投票
1 回答
187 浏览

android - 在 Executors.newFixedThreadPool 完成其工作后计算一个方法

我有一个方法。在这个方法中,我运行 Executors 的任务。它的工作是从服务器获取数据并填充结果数组列表。

填充结果 Arraylist 后,我​​必须使用这个 arraylist。我怎么知道 executorService 在哪里完成了它的工作,我可以再次继续我的方法?

0 投票
1 回答
59 浏览

java - 在视图更改之前播放声音

我正在 android studio 中创建一个钢琴应用程序:

应用截图

我的播放按钮有一个点击监听器,当按下它时应该使录制和播放按钮不可见,而在播放录制的声音时停止按钮可见。

播放按钮

切换按钮可见性的方法

使用记录和停止按钮,这可以正常工作

由于某种奇怪的原因,它首先执行循环并在方法更改哪些按钮可见for之前播放声音。switchButtonVisibility();这似乎没有任何意义,因为该方法位于循环之上。有什么方法可以设置它,以便在执行循环并播放声音之前首先更改按钮的可见性?

0 投票
1 回答
151 浏览

android - 按钮在新线程上不起作用

以前我有错误 - 关于一些循环,我已经看到在这种情况下有必要为按钮启动一个新线程的信息,但仍然没有任何反应,认为日志现在没有显示错误。

0 投票
2 回答
62 浏览

java - 如果检测到互斥,则停止当前线程

在我的 android 应用程序中,我的一个 MODEL 类中有一个特定的方法,并且该方法总是从 UI 线程以外的单独线程调用。

AlarmManger定期运行此方法,用户也可以选择从 UI 运行方法。(AlarmManger 操作和 UI 操作从主应用程序 UI 线程以外的单独线程调用此方法)。

我只是不想允许从 UI 和 AlarmManger 同时运行此方法。

当然我可以同步这个方法,保证一个线程执行一个方法。但这不是我想要的。

如果已经执行该方法,我想抛出一个异常并停止第二个线程(根据情况可能是 UI 调用或 AlarmManager)。因此,我可以通知用户操作已取消,因为找到了另一个正在运行的实例(AlarmManger 或表单 UI)。

我能问一下这种情况下最好的方法吗?谢谢

0 投票
0 回答
382 浏览

android - 在没有 UI 的情况下在后台执行 Webview

在我的应用程序中,使用 aWebView显示登录屏幕。一旦用户登录并且令牌过期,我将使用缓存的凭据重用 Webview 以重新登录。问题是我想在后台执行此重新登录操作,而 WebView 不可见。可能吗?

我试图放入一个透明的活动,但在这种情况下,用户无法在应用程序中导航,直到此过程返回。

0 投票
2 回答
573 浏览

android - Android Volley 和响应中任务或线程的使用

在我的应用程序中,我做了不同的请求来获取网站的 HTML 代码。之后,App 会解析 HTML,可能会执行并解析另一个请求。最后,ListView 填充了解析后的数据。

现在我读到 Volley 在 UI 线程的 onResponse 方法中运行所有代码。所以也许最好在一个新线程中进行解析。我实现它如下。

在处理结束时,我调用 MainActivity 的方法将数据添加到 Listview “callerActivity.addData(dataHashMap);”。此方法执行以下操作:

AsyncTask 和 Thread 之间是否有区别,所以我应该使用其中之一?还是无所谓?有没有更好的方法来做这些事情?

谢谢您的回答

0 投票
2 回答
82 浏览

android - 如何让 AlertDialogs 依次出现和消失?

我希望带有消息“1”的 AlertDialog 出现在屏幕上,并在 3 秒后消失,然后我希望另一个带有消息“2”的 AlertDialog 出现在屏幕上,并在 3 秒后消失,依此类推,直到 5。我有以下代码:

但是在等待一段时间后程序执行后,我只得到一个带有消息“5”的AlertDialog,就是这样。如果有人认为我的问题的另一个标题更合适,他可以更改它。