Android アプリ (API レベル 14 以上) では、さまざまなアクティビティ (ローカル バインディングを使用してその関数を呼び出す) によって使用されるサービスがあり、サービスはゲーム要素の位置 (座標) を 60 Hz で計算します。[アクティビティ内だけでなく、サービス内で計算を行う正当な理由があります]。これらの継続的な位置の更新は、サービス (ゲーム ロジック チェック用) およびプレイスクリーン アクティビティ (描画用) で必要です。
あなたへの私の質問は次のとおりです。このシナリオのサービスからアクティビティへの通信に選択するオプションは何ですか? サービスが新しい位置を計算した時点と、それが UI (アクティビティ) に知られている時点との間の遅延をミリ秒単位で最小限に抑えたいと考えています (せいぜい遅延はほとんどありません)。
すべて (アクティビティ、サービス) が 1 つのプロセスにあると想定できます。
私は、各アクティビティが再開するたびにサービスにその存在を通知し (そして onPause() でアクティビティがサービスに利用できないことを通知する)、サービスが新しい座標を計算するときに簡単にチェックできるようにするソリューションについて考えていました。アクティビティが表示されているかどうか。表示されている場合は、visibleActivity.someMethod() を直接呼び出します。.someMethod() が内部的に制御を UI スレッドに渡すことが理解されています。
これを提案するのは、Broadcasts を経由するとパフォーマンスが低下するはずだからです。
あなたの考えを聞かせてください!