问题标签 [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 投票
0 回答
66 浏览

android - 在之前或之后使用 AsyncTask.execute() 时,帧动画不起作用

为什么AsyncTask这里会导致与它无关的代码阻塞。例如:

动画在这段代码中运行:

但不是在这个:

或者在这个:

请注意,我在 Fragment 类的 ImageView 的 onClick 中运行此代码。

0 投票
1 回答
214 浏览

java - 被破坏的片段内容保留在屏幕上

我有片段通过Retrofit+进行 API 调用RxJava。我订阅并处Subscription置于。当我从 切换到仍在处理 API 调用时,会出现在. 这意味着内容保留在屏幕顶部并且无法控制它。onActivityCreatedonDestroyFragmentAFragmentBFragmentAFragmentBFragmentAFragmentA

片段A.java

片段B.java

我还做了一些日志记录,发现所有FragmentA包含在内的生命周期方法onDestroyView都被调用了。

0 投票
0 回答
69 浏览

android - 在 android 下,我可以从后台线程执行 Settings.Secure.getInt() 吗?

在android下,我可以运行下面的代码:

来自后台线程(不是来自主 ui 线程)?

0 投票
0 回答
39 浏览

android-asynctask - 如何运行异步任务。?仅第一次有效

我已经使用android studio将图像从设备SD卡上传到FTP服务器。当我上传图像时,图像第一次成功上传,第二次上传另一个图像“新AsyncTask()”不调用我做的一些帮助我更改代码的错误是什么..我的代码是。

UploadFTP() 方法

0 投票
1 回答
183 浏览

android - UI 冻结在 IntentService 中运行多个线程

所以在我的 android 应用程序中,我有一个意图服务来 ping 设备并查找它们是否在线/离线。

当我启动 IntentService 时,我的 UI 在服务中冻结(调试指向执行 ping 命令的时间)。

收到网络调用的响应后,服务从父活动启动

我的 IntentService 的代码如下:

从我的意图服务中,我使用以下方式将活动设备的数据发送回我的片段:

并使用以下方法在我的片段中提取此信息:

当我使用 IntentService 时,UI 冻结应该不太可能,因为任务是在工作线程上执行的,而不是在主线程中。

无法找出 UI 冻结的根本原因

0 投票
1 回答
979 浏览

java - Android NativeActivity:AttachCurrentThread JNIInvokeInterface 不是结构或联合

我正在使用 C 中的 NativeActivity。我的目标是获取对 JNIEnv 的引用,以便进行进一步的 Android 调用。

根据我在 Android 文档和 Stackoverflow 上收集的示例,我不断看到这个

但我不断收到这个错误......

0 投票
2 回答
197 浏览

java - 在线程的构造函数中调用 Looper.prepare() 会导致 RunTimeException

我有一个class扩展Thread如下 -

现在,我想在looper这个线程上附加一个。根据我对Looper只有主线程的理解,looper默认情况下会附加到它。

我尝试像这样调用Looper.prepare()Looper.loop()形成ThreadTest类的构造函数-

但是,我java.lang.RuntimeException: Only one Looper may be created per threadLooper.prepare();.

虽然,如果我附上looperin Run(),我不会遇到任何问题。

我究竟做错了什么?

0 投票
0 回答
1113 浏览

android - 在 GL 渲染线程上收到异常:android

我正在使用 CAMERA2 API,同时开发一个没有任何错误的应用程序,该应用程序将运行得很好。但是在录制了一些片段后,它会显示上述错误。

这是我的做法,

1.使用类打开相机cameraManager,然后将视频预览设置为纹理字段

  1. 在我们开始录制视频后,它会根据给定的时间中断,并立即重新开始录制,它会不断创建视频块,直到用户停止录制

没有任何问题,它会创建许多(大约 200-300 个)相机会话。但突然它发生在错误之下。我已经给了一些时间来设置相机会话并使用Timer类和TimerSchdule类发布这些会话。

我已经阅读了这个、 这里这里,以提取到底发生了什么。思想需要一些进一步的帮助。

我想知道的是

  1. 这个错误说明了什么?

  2. 一般来说,为什么这些错误发生在

编辑 :

错误--->>>>

0 投票
0 回答
1446 浏览

android - 如何在包含 OpenGL 上下文和 GL 线程的同时使用 GLSurfaceView 正确旋转 Android 设备?

我有一个简单的 Android 应用程序,它使用我们的 OpenGL 渲染 SDK 将数据渲染到 Android GLSurfaceView。由于我们提供 SDK 供其他人使用,我们需要支持 GLSurfaceViews 的所有用例。目前,我们需要能够旋转设备,同时重新创建所有 Android 视图并保持 OpenGL 上下文处于活动状态。这源于客户在横向和横向模式下需要不同的布局。

正常的处理方式是:

1.添加android:configChanges="orientation|screenSize"到您的活动中AndroidManifest.xml,您会没事的。

这在这种情况下不起作用,因为这不会重新创建旋转视图。因此,通过这样做,我们不能在横向和横向模式下拥有不同的布局。

2.调用GLSurfaceView.onPause()GLSurfaceView.onResume()Activity

虽然这被认为是一种好的做法,但在这个用例中还不够,因为这样做时 OpenGL 上下文会被破坏。请注意,我们仍在这样做,它只是不能解决我们的问题。

3. 在旋转时使用EGLContextFactory来保留 OpenGL 上下文。

如本答案中所述,这是可能且有用的。感觉就像一个黑客,但它绝对有效。EGLContext这个想法很简单,当你没有一个时创建一个,并在你拥有的时候重用它。

我们在使用这个 hack 时面临的主要问题是渲染线程在GLSurfaceView被分离并重新附加到视图层次结构时被破坏并重新创建。通过查看GLSurfaceView 实现,这似乎是设计使然。

在我们的 SDK 中,我们有一些线程本地存储连接到线程,所以突然获得一个新的渲染线程并不是很理想。当渲染线程发生变化时,我们可能会改变一些状态,但我们想研究是否有更好的方法来做到这一点。

所以我的问题是:

A. 是否使用EGLContextFactory“正确”的方式来手动保存旋转时的 OpenGL 上下文?

B. 有什么方法可以在旋转时不破坏和重新创建渲染线程(不修改源)?

C. 在保持 OpenGL 上下文和渲染线程的同时,有没有更好/更简单的替代方案来实现视图销毁/重新创建的旋转?

额外信息:

  • 我们总是打电话setPreserveEGLContextOnPause(true);
  • 渲染本身没有问题,只是描述的相关问题有问题。
0 投票
0 回答
31 浏览

java - 如何计算智能手机使用的有效时间(无锁时间)

我需要计算手机的实际使用时间,即当用户按下按钮时,我需要启动一些东西来计算屏幕打开的时间,但是当用户锁定手机时,计数器必须停止并且必须在用户重新启动时重新启动解锁智能手机。通过这种方式,可以看到实际智能手机使用时间的小时、分钟和秒计数器。

我该如何处理这个逻辑?我可以使用什么样的组件?服务、线程和广播接收器?我怎样才能将它们互连?