问题标签 [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 回答
4155 浏览

android - 如何正确处理 Room 线程

我对Room感到困惑,无法在文档中找到答案。

因此,该库强制在单独的线程上使用查询,这是可以理解的。但是,删除查询似乎不包含在此限制中,可以从 UI 线程中自由调用。它们也总是返回一个原始输出值,而没有机会将其包装在 Observable 中。

那么在Room中使用 delete 调用的正确方法是什么?它应该在单独的线程上运行吗?如果不是,那么性能和并发修改呢?

0 投票
0 回答
1744 浏览

android - 如何在android上调试长监视器争用

我不知道我对使我的应用程序 SUPER SLOW 的代码进行了哪些更改,现在它需要大约两分钟才能启动,但之前需要不到 30 秒。

我刚启动应用程序就收到了数百条这样的消息,但没有完成任何实际工作。

我如何调试和跟踪它的来源?

0 投票
3 回答
599 浏览

android - 片段:应用程序可能在其主线程上做了太多工作

我在我的应用程序中使用第三个片段。当我来到 3.fragment 时,我想用蓝牙向其他设备发送消息。但我的日志说:

应用程序可能在其主线程上做了太多工作。

而不是我的 AcceptedThread 锁。所以我的 ConnectedThread 是空的。我不能发送任何东西。我该如何解决?这是我的蓝牙服务代码:

0 投票
1 回答
79 浏览

android - 实例化 ProgressDialog 类的更好方法是什么,为什么?

以下是创建进度对话框的示例:

第一种情况:

私有 ProgressDialog 进度对话框;

请注意,这里我有“progressDialog = ProgressDialog.show(MainActivity.this, "Loading", "Please Wait");"

第二种情况:

这里我有“progressDialog = new ProgressDialog(MainActivity.this);”

问题:谁能向我解释一下这两种创建进度对话框的方法?我知道第一个对话框是圆形对话框,第二个是水平进度对话框,但是为什么在第一个示例中我有 "progressDialog = ProgressDialog.show(MainActivity.this, "Loading", "Please Wait")" 而没有 new ProgressDialog()在第二个示例中,我有新的 ProgresDialog()?

0 投票
4 回答
494 浏览

android - 在 Thread 上刷新 UI 并更改 Fragment 时出错

所以我在理解(我认为)刷新 UI 的工作原理方面存在问题。我有一个底部导航栏的活动,其中包含 3 个加载片段的项目。每个片段都从互联网加载数据,因此我将这些数据下载到一个线程中,完成后我在 UI 线程上刷新我的 recyclerview。

但问题是当我在导航栏上选择一个项目时,当我立即选择另一个项目时,我的应用程序崩溃,因为数据下载完成并且 UI 线程正在尝试刷新 recyclerview 但我不再在分段

那么我怎样才能避免这种崩溃呢?

这是我的代码:

编辑 :

这是错误日志:

主Activity底部导航条码:

片段代码:

0 投票
1 回答
312 浏览

android - 同一个android Activity中的两个Thread.sleep()

也许有人可以告诉我我做错了什么我正在编写一个 Android 应用程序,它将显示 3 个视图,按时间间隔分隔,所以基本思想是;

但不是进行 1000 毫秒的单独停止,活动正在等待 2000 开始,然后同时显示所有视图。我是 android 和 java 开发的新手,如果我在做一件愚蠢的事情,我很抱歉。在此先感谢大家。

0 投票
1 回答
303 浏览

android - 如何停止所有服务,线程,卸载android app kill上的库

我想让用户能够选择不同语言的应用程序 UI 和内容的语言。我想用用户选择的新语言从服务器重新加载新的本地化数据。

要使用新的语言设置重新创建应用程序,我计划:

  1. 将所选语言保存到共享首选项。
  2. 在我的两个 IntentService 上调用 stopService()。
  3. 使用此处的答案完全杀死当前正在运行的应用程序:如何以编程方式“重新启动”Android 应用程序?
  4. 在 MyApplication 启动时,首先检查共享首选项以及它们是否包含新的用户语言 - 然后清除几乎所有在 SharedPreferances、Realm 数据库中的记录。
  5. 再次启动所有服务,现在它们将转到服务器并使用新的语言首选项获取新数据。

接下来是我想了解的关于应用程序杀戮的内容:

  1. 在杀死我当前正在运行的应用程序的那一刻 - 我所有正在运行Services, Threads, ThreadExecutors, CompositeDisposable, WorkEnqueuer, Runnables, AsyncTasks, Handlers 的线程和(在后台工作)的东西都会System.exit(0)在被调用 的同时停止吗?这是否意味着当我杀死我的应用程序时,它也会完全立即停止所有与线程相关的东西的工作?

  2. 我使用的所有库是否都会从内存中卸载,然后在第二次启动时正确重新初始化?像这样的库:RealmDB, Firebase, Dagger, RxJava2, Retrofit?下面列出了我在项目中使用的库和服务列表。

  3. 所有静态变量都会重新初始化吗?

谢谢。

这是我使用的清单和库:

图书馆:

0 投票
1 回答
466 浏览

android - 屏幕锁定时Android线程执行减慢

我正在运行此过程以下载一些数据并将它们插入数据库。整个过程大约需要 5 分钟。我注意到在下载过程中,当手机锁屏并在5分钟后打开它时,它仍然会下载。似乎当锁定的下载过程变慢时。有什么解释吗?

按下主页按钮时执行时间也会减慢并成为后台进程,不仅在屏幕锁定时。

谢谢

0 投票
1 回答
73 浏览

android - Android 线程和服务优先级

我正在网上阅读有关服务和线程的信息(如果它在 android 的同一个线程中运行,为什么要使用服务),我得出的结论是,一般而言,服务的优先级高于线程。

我有一个应用程序,它使用简单的线程通过静态类执行下载操作,并在 5 分钟内完成。但是当我按下主页按钮并在一段时间后再次打开应用程序时,执行速度变慢了,因为我按下了主页按钮。

我要问的是,如果我使用服务会更快,或者通过按下主页按钮,减慢应用程序或优先级与执行时间无关是正常的?

谢谢你。

0 投票
1 回答
121 浏览

android - 即使应用程序关闭,我也想在屏幕上显示 gif 图像

通过鼠标单击,您实现了两件事:

  • 声音正在播放
  • GIF 图像正在显示

即使关闭正在使用服务的应用程序,我也试图在屏幕上显示 GIF,但由于在出现 GIF 图像时声音一直在播放,我找不到解决方案。

TheService.java (代码)

MainActivity.java (代码)

activity_main.xml