2016-09-01 16 views
0

私の仕事は、現在のGPS座標を取得するなどの定期的なタスクを実行するバックグラウンドで動作するアプリを実装することです。同時に、ステータスバーのアイコンとメニューを使用して、同じ操作を明示的に加えていくつかの設定ウィンドウを行う機能をユーザーに与えます。 私の質問は、エージェントを使用することができますか、メインウィンドウなしでこの機能をCocoaアプリとして実装する必要があるかどうかです。OS Xでバックグラウンドアプリを実装する最善の方法

答えて

1

エージェントを使用してバックグラウンド処理や定期的な更新を行うことができます。次にステータスバーに小さなアプリケーションを起動して、アクションを実行したり設定を呼び出すためのメニューオプションを提供します。これは、さまざまなIPCメカニズムの1つを使用してエージェントと通信できます。

ステータスバーをスキップし、[設定]パネルを設定するだけで、設定と特定の操作を開始するためのボタンが両方あることができます。製品の見え方に応じて、これは別の良い選択肢かもしれません。

ユーザーのステータスバーに表示される画面領域は貴重なものであり、ユーザーが必要としない場合はアイコンを非表示にする方法が理想的です。ベースシステムのn例については、Bluetoothサポートの提供方法を​​見てください。設定は[設定]ですべて実行され、オプションのステータスバーアイコンはすばやくアクセスできます。

+0

この特定のケースでは、クライアントは、ユーザーがログインしているときにいつでもステータスバーにアプリが表示されるようにしたいと考えています。 –

+0

さらに明確にする。何がLSBackgroundOnlyがYESに設定されたCocoaアプリとしてこのアプリケーションを実装するのを止め、launchdで起動するのですか? –

+0

ユーザーがログインしていない場合や、ログインしているユーザーとは関係なく、バックグラウンド処理を実行する必要がありますか?その場合、間違いなくデーモンが必要になります。オンデマンドであれば、同じココアアプリを1台持つことができます。どのような方法でフロントエンドの複雑さに依存するかと思います。バックエンドを独立させたい場合は、 – gavinb

関連する問題