java - Android - 线程内的 BroadcastReceiver

标签 java android

是否可以让 broadcastReceiver 在线程中运行(只是 broadcastReceiver)?据我所知,除非有办法让线程保持 Activity 状态(即使很难,也没有工作),否则无法完成此操作。如果我错了,请纠正我。

这就是我想要做的:我有一个客户端和一个服务器程序,它们在不知道何时准备就绪的情况下运行。客户端将不断尝试向服务器发送请求,同时监视来自服务器的回复。收到服务器回复后,即表示服务器在线。

我曾尝试使用线程(在客户端上)通过定期 hibernate 不断向服务器发送请求。然后让客户端主线程做一个周期性 sleep 的while循环(希望在有来自服务器的广播时捕捉回复)。不幸的是,这不起作用。

客户端额外线程已验证发送请求,服务器已发送回复,但由于某种原因客户端主线程没有收到任何东西。广播接收器在服务器和客户端上的实现已被验证可以正常工作,所以这不是问题。

有人对此问题有更好的解决方案/方法吗?

最佳答案

据我了解,当客户端主线程处于 sleep 状态时,它无法接收到来自服务器的广播。所以这里失败了..

也许你可以这样做..我们可以写custom broadcasts这样当服务器准备好时,您就可以向客户端发送广播 Intent 。然后客户端 broadcastReceiver 将启动您需要的线程。您可以以相同的方式向服务器发送请求。

猜猜它可能有帮助.. :)

关于java - Android - 线程内的 BroadcastReceiver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3589149/

相关文章:

java - 按颜色获取R、G、B的值

java - 我无法在Java游戏android中的两个对象之间发生碰撞

Android:如何追踪 InflateException 的来源?

java - 尝试对 kml 文件中的一些地标进行排序

java - 带有自定义 entityManagerFactory 和 Query 注释的 validateQuery 中的 Spring 数据 JPA NPE

java - Java中如何传递链表?

java - 如何修复: “No suitable driver found for jdbc:mysql://localhost/dbname”

android - android 中 onCreate fragment 中的 setRetainInstance(true)

android - 在 Android 上使用 Espresso 测试 EditText 错误

android - 包括带有 PhoneGap 的 QR 扫描器应用程序