问题标签 [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.

0 投票
1 回答
458 浏览

android - 如何在重新启动 Activity 后检查线程是否处于活动状态?

我在一个线程上运行繁重的操作,该操作在按钮单击时被调用。为了防止用户再次单击该按钮,我只是检查 if thread.isAlive(),只要我处于当前活动中,它就可以正常运行。当我按下 backpress 并再次进入此活动时,thread.isAlive()返回 false 并再次开始执行该密集功能,因为我正在 onCreate 中创建新线程。我该如何解决这个问题?我的代码如下

备份线程类

0 投票
1 回答
29 浏览

android - 使用另一个线程时,ProgressBar 不显示

我将循环不确定的progressBar 变为可见,然后运行Thread,这可能需要几秒钟(我尝试了AsyncTask,但它不起作用,可能是因为在该方法中运行了另一个AsyncTask)。但是,progressBar 仅在线程完成后才可见。如何在运行线程之前使其可见,以便用户可以看到正在发生的事情?

编辑:代码相当复杂,所以不可能在没有长描述的情况下全部附上,但是,我会尝试附上代码的重要部分

0 投票
0 回答
53 浏览

java - Android - 选择在线程中运行的方法

我正在创建一个与 Web 服务通信的 Android 应用程序。

我有一个 SOAP 类,它包含执行 Web 服务功能的不同方法,还有一个 SOAPCaller 类,它运行一个线程来调用 SOAP 类中的方法。

要选择 SOAPCaller 中的线程调用哪个方法,我在我的应用程序中的任何位置设置一个带有方法名称的字符串,然后我的 run() 方法有一个 switch 语句,它查看字符串以决定从哪个方法应该调用 SOAP。

这工作正常,但感觉很hacky......有没有更好的方法来做到这一点?当线程以某种方式运行时,我可以在我的 SOAPCaller 类中调用所需的方法吗?

任何帮助或建议表示赞赏。谢谢!

首页片段

SOAP调用者:

肥皂

0 投票
1 回答
975 浏览

android - 无法从android相机获取输出缓冲区

我正在使用Android Camera2 API并在使用 Android 6.0(API 23)从我的智能手机上的相机获取一组照片后得到这个:

出现此错误后,相机阻塞,图像停止发送,我需要重新打开 CameraDevice 以获取一组新图像。

我正在使用BackgroundHandler处理在BackgroundThread中获取相机图像。然后我创建额外的 BackgroundThread 来使用 OpenCV 库函数处理每个图像。但是,我同时只有一个额外的 BackgroundThread 工作。(有些图片我会省略,只有在没有其他类似线程的情况下才会创建一个新线程。)

为了获取图像,我使用带有setRepeatingRequest函数的CameraCaptureSession 。而且我在处理之前对每个图像缓冲区进行了克隆。所以,我的问题是为什么会发生错误以及如何克服它?

0 投票
1 回答
53 浏览

android - Android 中的线程和并行性

我对 Android 开发非常陌生。谁能帮我处理这个片段,我不知道为什么它可以完美运行,尽管我正在TextView从工作线程更新我的。当我说完美工作时,我的意思是TextView显示值计数没有任何问题。所以,我的问题是 - “是否真的可以从后台线程更新 UI,如果没有,我错了”

0 投票
1 回答
55 浏览

java - 如何提升将多个图像从网络加载到 ImageViews

为了从网站加载多个图像,编写了以下代码。

这种方法虽然执行成功,但存在执行速度太慢的问题。

所以我想知道什么比这种方法更快。

请帮我。

变量描述

postImgUrl :类型是 ArrayList,这是包含我想要的图像的 url

postImg :类型是 ImageView Array,这是布局中存在的 ImageView。

0 投票
0 回答
132 浏览

android - Android 应用程序在 WebView 膨胀时冻结

在我的应用程序中,我有一些片段,我用这个漂亮的动画在它们之间切换:

在每个片段中,我都有一个 RecyclerView,其中包含多种类型的项目,例如 TextViews 或 ImageViews。它工作正常,但是

当我添加一个 WebView 作为我的 RecyclerView 项目的一种类型时,片段事务的漂亮动画在我第一次打开片段时开始冻结。原因是 WebView 膨胀。

如何在后台线程中膨胀视图,或者可能有更好的解决方案?

(它在 RecyclerViews 中仍然可以正常工作,它不会将 WebView 作为一个项目膨胀)

我的适配器:

0 投票
0 回答
338 浏览

google-maps - 使用 Kotlin 协程为 Google MapOverlays 生成位图

我在构建代码的一部分时遇到了一些问题,该代码编辑服务器发送的缩略图并将它们呈现为 Google GroundOverlay。

这个问题似乎源于 Kotlin Coroutines。首先,谷歌的文档说地面覆盖层必须在主线程上创建。在主线程之外运行它们的创建会导致致命错误。所以我一直确保在主线程上制作这些GroundOverlays。但是,当尝试在 Main 之外的线程上创建位图时,我似乎根本没有覆盖。

从主线程调用挂起函数。现在,

和上面注释掉的部分(不使用异步)

两者都会产生一个没有问题的 GroundOverlay。当我将 Dispatchers.Unconfined 更改为其他任何内容时,就会出现问题。甚至 Dispatchers.Main 也会导致 GroundOverlay 不显示在地图上。GroundOverlays 制作完成,我用日志语句检查了它们。他们的透明度是预期的,他们的知名度也是如此。问题似乎与位图有关。我怀疑我不理解 await() 的工作方式。我想它会暂停挂起功能,直到位图返回并准备好。

这是用于隔离错误的简化代码。我确实需要在 Dispatchers.Default 上完成此操作,因为每个缩略图的样式都会根据位置和一天中的时间进行调整。如果在主线程上完成,这部分处理在 UI 上会很困难。

0 投票
0 回答
87 浏览

android - 在 onBindViewHolder 的 RecyclerView 中加载图像的问题

我正在创建一个应用程序,其中我在回收站视图中显示一个 imageview 和两个 texviews。我正在尝试使用我创建的图像加载器从 url 设置图像视图的图像资源。ImageLoader 类

这就是我调用 onBindViewHolder 的方式

问题是如果要加载的图像较少,则没有问题,但是当多次调用上述行时,我会收到 OutOfMemory 错误

如何使用线程有问题吗?我无法理解这个错误,我对此并不陌生。

0 投票
0 回答
184 浏览

android - 自定义键盘:指定的消息队列同步屏障令牌尚未发布或已被移除

我做了一个自定义键盘,最近它随机崩溃了这个日志,

我不知道为什么会发生这个错误,或者由于我的代码的哪一部分,有人可以帮我解决这个问题吗?