| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
44 バイト追加 、 2020年2月15日 (土) 08:00
編集の要約なし
==Android Service==
[[Android][Android Tips]]
*http://developer.android.com/reference/android/app/Service.html
===概要===
*Sevice は、長い期間ユーザーと対話なしに処理を実行させたり、他のアプリケーションに機能を提供する要件を実現するためのアプリケーションコンポーネント。
*すべてのサービスは、AndroidManifiest.xml の <&lt;service> &gt; 宣言と一致する必要がある
*サービスは、Context.startService() や Context.bindServce() により開始することができる
*サービスに適切な振る舞い(サービスの中で働く二次的なスレッドを生成するような)を実装させることができる
<&lt;blockquote>&gt;サービスはとてもシンプルなので、希望によって、シンプルな命令や複雑な命令を、リモートインターフェースであるAIDLを利用して、ローカルJavaオブジェクトを取り扱うように直接メソッドをコールすることで実行できる。<&lt;/blockquote>&gt;
===ライフサイクル===
*サービスは、Context.stopService() もしくは stopSelf() が呼び出されるまでは、起動し続けている。
<&lt;blockquote>&gt;Context.statrService() を多重で呼び出してもネストされない。(たとえそれらが、複数のonStartCommand() に対応する結果を返すとしても)なので、何回サービスをスタートしたとしても問題無いし、一度の Context.stopService() または、stopSelf(int)の呼び出しで、サービスは停止する。しかしながら、サービスは stopSelf(int) を、開始されたインテントが処理中で、停止していないのを保証するために利用することが出来る。<&lt;/blockquote>&gt;
*サービスを開始するのに、2つの主な追加の操作モードがある。
===パーミッション===
*マニフェストの <&lt;service> &gt; タグで宣言された時に、サービスへのグローバルアクセスが実行出来る。*そうした場合、サービスの開始、終了またはバインドのために、他のアプリケーションは一致した <&lt;uses-permission> &gt; 要素を自信のマニフェストでを宣言する必要がある。
*さらに、checkCallingPermission(String) メソッドを その呼び出しの実装より前に呼び出すことにより、サービスは固有の IPC(プロセス間通信) 呼び出しをパーミッションで保護することが出来る。

案内メニュー