问题标签 [android-handler]
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 - 如何将服务绑定到正确的活动实例?
由于各种原因,我无法让我的应用程序正常工作。
设计概述:我的目标是一个具有两个按钮(连接、断开连接)和一个显示从连接接收到的数据的文本视图的活动。我编写了一个“MySocket”服务来处理 WebSocket 连接(Gottox 的 Java 实现),每当 tit 从服务器接收到某些内容时,该服务就会向活动发布一条消息,然后活动将该数据附加到 textview 上。该服务必须从活动接收连接/断开连接提示,并能够将消息传递给活动。MySocket 还需要作为前台服务运行,以便无限期地保持连接,并向用户提供粘性通知。
我在各个地方都遇到了重大问题。首先,我注意到我可以启动另一个活动实例,而原始实例仍在更新中。android:launchMode="singleInstance">
我通过在清单中指定来解决这个问题。我遇到的问题是,当活动被销毁并创建新活动时,服务继续发布更新,但重点活动没有收到它们。如果原始活动被破坏并且服务处理程序没有更新,那么一旦活动被破坏,它肯定会抛出空指针异常,但应用程序继续运行。然后我尝试unbindService(mConnection)
在我的 onDestroy 方法中运行,但这抛出了java.lang.IllegalArgumentException: Service not registered:
The service is messing something这应该是重点活动,但似乎没有收到它。我怀疑我的前台服务执行不力是罪魁祸首,但我真的不知道。
有问题的两个类很长,所以我删除了 Logcat 行、全局变量和一些我确定是不相关的方法。我意识到架构是可怕的,但这已经接近我的工作了。如果代码太可怕而无法阅读,我很乐意有人提出替代结构,只要它达到预期的结果。
活动类:
和 MySocket 类:
android - Android 2.2 的操作栏,处理程序未通过 UI 更新
我正在尝试抽象并创建一个操作栏(适用于 Android 2.2)。因此我自己写出来。由于某种原因,我无法让 HomeScreen 更新操作栏。这可能不是处理程序问题,比我猜的更基本。
我的类图就像 IBar (interface) ->implementedby-> ActionBarActivity (abstract class) ->extendedby-> HomeScreen 使用类God
公共静态方法。
Only relevant pieces of code below
ActionBarActivity,被我所有的 Activity 使用。
HomeScreen 扩展了 ActionBarActivity
神级,公静。
操作栏上的图像按钮
编辑:我在调试器下运行了这个,我执行到了 --->>> 行。这意味着我的 connection.setImageDrawable 被调用,但由于某种原因没有显示在我的 UI 上。我在这里错过了一些非常基本的东西。
android - 在android中销毁Runnable
我正在使用以下代码访问 url:
我观察到,如果服务器没有启动,如果我点击后退按钮,应用程序需要很长时间才能正确关闭。无论如何我可以加快退出程序。
android - 完成从 url 下载图像后如何启动意图?
我需要在完成从 url 下载图像后开始我的意图,而不需要应用程序本身的用户采取任何行动。
这是我的活动,它首先会下载图像,然后会启动意图。
MyAsnyc 做得很好并且可以正确下载图像,但是代码的第二部分在下载图像时启动了意图,因此图像将被损坏,从而导致异常。
一旦图像准备好并完成下载,如何使意图开始?
android - Android Handler.getLooper() 返回 null
我有以下问题。我用 Looper 实现了我的线程。
}
我想做以下事情:
其中 lm 是 LocationManager。从我的日志和测试中,我可以说locationThread.handler.getLooper()
返回 null 而不是 Looper。
我不知道为什么它是空的。我试图打电话给locationThread.isAlive()
返回true。我也试图得到locationThread.handler;
我知道不为空的。我也做了很多谷歌搜索,但我没有找到比文档更多的东西。
非常感谢您的回答。
android - Android 处理程序是否使应用程序保持活力?
我有一些我想要执行的定期处理。我是这样设置的:
我有一些问题:
- 当应用程序在后台时,这些处理程序会触发吗?(如果没有,当应用程序返回前台时是否会触发任何过期的处理程序?)
- 这些排队的消息会让应用程序“活着”吗?也就是说,这些排队消息的存在是否会阻止 Android 杀死应用程序,即使所有活动都消失了?
android - 多个处理程序可重用代码
有人可以建议在一个活动中使用两个不同的处理程序的替代方法,或者让我知道这种方法可以吗?
详细信息:我正在开发一些用于 Microchips ADK Android 入门套件的代码。一切都运行顺利,但是,我遇到了一个问题,即代码中运行了两个不同的处理程序,它可以工作,但我注意到不建议这样做。我用来创建时间延迟的第一个处理程序,并使用 post 命令启动结果。第二个处理程序用于 Microchip 提供的示例代码,用于与 USB 附件框架文件进行通信。我更喜欢只修改 Microchip 代码而不是重写它。类似代码:
android - 从 trace.txt 修复 SoundManager.release ANR
我在调用 SoundPool.release() 时收到以下 ANR。这不是一致的缺陷,而是随机发生的。因此,复制它有点费时。有两种方法可以修复它,AsyncTask 或 Thread。我不认为我可以在这里使用处理程序,因为发布不应该在 UIThread 上运行。
我已经使用 Thread 修复了它
我做对了吗?
android - Handler (MessageQueue) 和 AsyncTask (SERIAL_EXECUTOR) 在性能方面有什么区别?
有几种方法可以在您的应用程序中异步获取数据。一个是a Handler
,另一个是a AsyncTask
。现在我已经使用了两者,并且想知道哪一个在某些任务中表现更好/更有效。
到目前为止,我主要用于AsyncTasks
获取 Web 数据,以及Handler
从 获取数据Services
到Activities
.
我想知道将Handler
's 用于 Webdata 或使用 AsyncTasks 从Services
. 最大的区别是什么?
android - Android Spinner 上的多个 AsyncTasks 问题
我遇到了一些错误。我知道问题出在哪里,但我不知道如何解决。
我有 4 个微调器。每个微调器都关联一个异步任务。简而言之,当我在 spinner1 上选择一个项目时,执行填充 spinner2 的第二个 asynctask(所选项目作为参数添加到第二个 asynctask)以这种方式继续。
但是在第一个异步任务结束之前,spinner2 无法填充。在这种情况下,我遇到了错误。如何解决?如何让第一个任务完成,第二个任务工作?
这是代码;
第一项任务
第二个任务
onCreate()
编辑:我从我的网络服务获取数据并填充 spinner1。我将在哪里获得数据(spinner1 所选项目)?我在哪里填充 spinner2 执行第二个任务?