while(true)
ループを使用して着信パケットを継続的にフィルタリングするチャット クライアント アクティビティがあります。パケットに含まれるメッセージに基づいて、サービスを開始および停止する必要があります。サービスは集中的な長時間実行タスクを実行します。サービスは呼び出し元アクティビティの同じスレッドで開始されるため、サービスを開始できず、パケットのフィルタリングも続行できません。そうしないと、ANR ダイアログが表示されます。アクティビティとサービスの両方がタスクを実行し続け、アクティビティが後でサービスに通知/停止できるようにするにはどうすればよいですか?
新しいスレッドでサービスを開始しましたが、それでも ANR が発生しました。
編集: AsyncTaskとBroadcastReceiverの使用は、サービスの呼び出し時にパケット フィルタリングが停止されている場合にのみ機能します。両方を同時に行うと、ANR が得られます。