0

while(true)我有一个聊天客户端活动,它使用循环不断过滤传入的数据包。根据数据包中包含的消息,我需要启动和停止服务。该服务执行密集的长时间运行任务。由于该服务在调用者 Activity 的同一线程中启动,因此我无法启动该服务并继续过滤数据包,否则会显示 ANR 对话框。我怎样才能让活动和服务都完成他们的任务以及活动以便以后能够通知/停止服务?

我在一个新线程中启动了该服务,但仍然给出了 ANR。

编辑:仅当在调用服务时停止数据包过滤时,使用AsyncTaskBroadcastReceiver才有效。同时做这两个给出ANR。

4

1 回答 1

0

使用广播接收器并注册特定的意图过滤器。每当您需要根据聊天消息的内容进行任何处理时,广播意图。在接收器中,您可以采取任何您需要的操作。

于 2013-06-11T11:54:14.807 回答