问题标签 [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 - Android - 重复 WebService 调用
我需要经常使用 JSON 网络服务(每 5.10 秒最多)。
为了测试目的,我在 AsyncTask 中实现了 web 服务调用,每当我按下按钮时都会执行该调用。
我应该使用 Handlers、Timers 还是 AlarmManager?
我有点困惑,因为 AsyncTask 创建了自己的线程,但是这些方法中的任何一个都不会创建另一个线程,从而创建一个将创建另一个线程的线程吗?
我使用 AsyncTask 实现了它,因为每当 web 服务调用出现问题时,我无法让应用程序挂起,所以如果第一次调用失败,如果第二次调用成功,应该没有任何问题,我正在获取的数据将第二次执行任务时出现。
(GCM 可能是一个解决方案,但现在我需要使用轮询而不是通知..)
提前致谢
android - 在 Handler#postDelayed(Runnable, long) 中启动另一个活动会产生“SPAN_EXCLUSIVE_EXCLUSIVE 跨度不能有零长度”
当我开始一项活动时,Handler#postDelayed(Runnable, long)
我收到一条错误日志消息(是的,重复了两次):
应用程序不会崩溃,但是总是看到这个错误很烦人。在此示例中,我在 LogCat 中没有得到其他输出。
我的第一个活动:
我的第二个活动:
我的清单:
android - 未捕获的处理程序错误。
我正在尝试做一个 HTTP Post,当我知道应该在异步任务或处理程序中使用耗时的任务时,我尝试使用处理程序对其进行编码,但我得到一个处理程序未捕获的异常,无法确定在哪里我错了。下面是我的代码和日志跟踪。
}
这是我的原木猫:
android - 处理程序中的异步任务?在行中执行多个异步任务
我在android中遇到以下问题:
我需要在 row 中处理一些异步任务(e.g. Async-Task 1 -> Async-Task 2 -> Asyc-Task 3)
。所有的异步任务都用一个 handler 来回答(sendMessage(xy))
。
所以我的处理程序必须启动下一个异步任务。这是最佳实践吗?我应该选择另一种方式吗?
总结:我正在寻找一种方法来串行处理许多异步任务......
我不能使用 asyncThread 的 get() 函数,因为它们只在处理程序中返回它们的答案。
对不起,我的英语不好..
java - Android 中的 Java Timer 等效项
我最近开始使用 Java 并正在探索 Android 开发。我试图移植我制作的一个 Java 程序,但是在让 java Timer 在 Android 中以相同的方式运行时遇到了一些困难。我阅读了许多帖子,它们在大多数情况下表示最好在 android 中使用 Handler 类而不是 Timer。
这是我在 Java 中的计时器:
一旦单击某个按钮,我只需运行“playTimer.start()”即可启动它。
如您所见,我设置了它,以便用户可以设置他们想要的 FPS(只需将 Timer 类的第一个参数设置为 1000/model.getFPS())。
现在我尝试使用处理程序在 Android 中做类似的事情,但我遇到了一些困难。处理程序滴答似乎没有以适当的时间间隔触发。与我需要的相比,它们似乎相当慢。到目前为止,这是我在 android 中所做的:
原谅半伪代码。任何人都可以解释一下吗?多谢你们。
android - 如何解决执行 doInBackground() 时发生 java.lang.RuntimeException 错误?
我是 android 开发的初学者,我在以下代码中遇到错误。我正在为 http 请求调用 asyn 方法,在此之前我正在检查 Wifi 或移动网络是否可用。当 Internet 连接可用时,我的服务运行良好,但在离线模式下,我会收到此类错误:“java.lang.RuntimeException:执行 doInBackground() 时发生错误”
下面是 MyServiceProfile 代码。在这段代码中,我首先检查 Internet 连接,然后如果用户离线,则数据保存在本地数据库中并在 Internet 连接期间自动更新我们的服务器
}
我对服务器 Http 链接代码的更新如下:
}
有时它可以正常工作,但是在连接wifi或移动互联网连接时突然我的应用程序崩溃了,我认为当时服务没有正常运行。:( 等待您的建议、解决方案和您的想法。谢谢。
android - 如何在android中停止处理程序
我已经创建了一个 android 应用程序,当单击一个按钮时,处理程序将在每 2 秒激活一个烤面包机。另一方面,我有一个停止按钮,我想在单击时停止正在运行的线程
这是我的代码
java - 从处理程序调用时,异步任务未获取数组列表
我正在使用处理程序来启动异步任务,但是这样做时,我的应用程序崩溃了。我被卡住的原因是因为如果我通过其他任何东西(例如 onClickListener)启动异步任务,那么我可以多次运行它,一遍又一遍,并且每次都能完美运行。一旦我从我的处理程序执行 asynctask,它就会立即使用 NullPointerException 使应用程序崩溃。
我的处理程序看起来像这样
这是来自应用程序的堆栈跟踪的一部分,显示了异常
我的代码的第 100 行是 doInBackground 下 asynctask 的第一行
我知道异常很可能来自“global.places.size()”可能为空,但我坚持为什么它只有在从处理程序调用时才会这样做,因为如果我从我的代码的任何其他部分。
编辑
根据@Raghunandan 的要求,这是我的 asynctask 中 doInBackground 的整个代码块,它计算“地点”与用户之间的距离:
编辑 2
global 是一个扩展 Application 的类,在 Activity 中定义如下:
android - Change the button color after a variable time
I'm having a problem to change the button color after a certain amount of time. I know how to change using handle after a fixed time, but I need to change the color after a specific time that is chosen by the user.
}
android - Android可在多次调用的线程上运行
我正在尝试使用 aSmack 实现 MUC,但似乎无法使用 ArrayAdapter 正确更新 UI。我已经在我的ChatService.java中设置了我的监听器,如下所示:
我的侦听器类如下所示:
现在问题如下;首先,我尝试通过处理程序更新 UI(处理程序在我的ChatActivity.java中定义):
但这不会更新 UI,直到从用户端引入交互。经过一点网络挖掘后,我意识到我需要使用 post(或 runonUIthread)方法来实现这一点,所以我尝试了:
但是现在 run() 方法被多次调用(在调试时确认),并且 UI 更新为看似随机数量的相同消息(每条消息的重复数量不同,但显示了所有消息)。
这是我的第一个 android 应用程序(但我是一名 java 开发人员),我很确定我在这里的架构做错了什么。任何帮助(最好是详细的 - 带有代码示例和/或对文档正确区域的引用)将不胜感激。
提前致谢!