是否可以让 broadcastReceiver 在线程中运行(只是 broadcastReceiver)?据我所知,除非有办法让线程保持 Activity 状态(即使很难,也没有工作),否则无法完成此操作。如果我错了,请纠正我。
这就是我想要做的:我有一个客户端和一个服务器程序,它们在不知道何时准备就绪的情况下运行。客户端将不断尝试向服务器发送请求,同时监视来自服务器的回复。收到服务器回复后,即表示服务器在线。
我曾尝试使用线程(在客户端上)通过定期 hibernate 不断向服务器发送请求。然后让客户端主线程做一个周期性 sleep 的while循环(希望在有来自服务器的广播时捕捉回复)。不幸的是,这不起作用。
客户端额外线程已验证发送请求,服务器已发送回复,但由于某种原因客户端主线程没有收到任何东西。广播接收器在服务器和客户端上的实现已被验证可以正常工作,所以这不是问题。
有人对此问题有更好的解决方案/方法吗?
最佳答案
据我了解,当客户端主线程处于 sleep 状态时,它无法接收到来自服务器的广播。所以这里失败了..
也许你可以这样做..我们可以写custom broadcasts这样当服务器准备好时,您就可以向客户端发送广播 Intent 。然后客户端 broadcastReceiver 将启动您需要的线程。您可以以相同的方式向服务器发送请求。
猜猜它可能有帮助.. :)
关于java - Android - 线程内的 BroadcastReceiver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3589149/