控制活动中的服务

时间:2013-06-11 10:47:02

标签: android multithreading android-service

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

我在新线程中启动了该服务,但仍然提供了ANR。

编辑:只有在调用服务时停止数据包过滤时,才使用 AsyncTask BroadcastReceiver 。同时做两者都给出了ANR。

1 个答案:

答案 0 :(得分:0)

使用广播接收器并注册特定的intent-filter。根据聊天消息的内容,在需要进行任何处理时广播意图。在接收者中,你可以采取你需要的任何行动。