タグ

aidlに関するshimookaのブックマーク (4)

  • AndroidのRemote Serviceについて(+作り方) - adsaria mood

    ローカルサービスについては“AndroidのServiceについて”に書いたので、ここではリモートサービスについて書き留めておく。ここで取り上げるリモートサービスとはサービスとサービスを呼び出すクライアントが別々のアプリケーションとして動作しているケースを指す。(後で実際に動かしてみたサンプルを載せておくが、サービスとクライアントは別々のアプリケーション、別々のパッケージとして動かしている)。 基的はローカルもリモートも同じサービスには変わりないのでstartServiceでサービスを起動、stopServiceでサービスを終了、bindServiceでサービスとの接続を確立、unbindServiceでサービスとの接続を切断、というのは全く同じ(詳しくは“AndroidのServiceについて”参照)。 ただ、リモートサービスの場合は、サービスのオブジェクトを直接参照したりメソッドを呼

    AndroidのRemote Serviceについて(+作り方) - adsaria mood
  • AndroidのServiceについて調べてみた

    Serviceについて調べてみたのでまとめ。 Serviceを起動前にBindしても起動できる bindService()でServiceにBindすると一緒にServiceがCreateされる。ただし、bindService()で起動されたServiceはunbindService()された時に殺される。unBindした後も起動しておいて欲しい場合はstartService()後にbindService()してあげる事でunbindService()したとしても殺されない。bindしたActivityがunbindせずに死ぬと例外吐くからちゃんとonDestoryとかでunbindしてあげましょう。 Serviceはメモリがなくなったら殺される Backgroundで起動して動いている間は死なないものだと思っていたけど、Serviceはメモリがなくなったら死ぬ。メモリがなくなった場合はo

  • AIDLによる Service ⇔ Activity間通信

    AIDLとは? →android上でプロセス間通信を行うためのもの Service側に実装されたコールバック用のインターフェースを Activityが受け取ることで、Serviceの処理を呼び出すことが可能 逆に ServiceからActivityのメソッドも呼び出せるらしい? ★ 要調査 最初のテンプレートさえ覚えておけば、使い方は特に問題なさそう 1.AIDLファイルの作成 拡張子 .aidl のファイルを作成し、その中に下記のようにインターフェースを書く javaソースと同じフォルダに置く interface IServiceMethod { void CallServiceMethod(); } 2.サービスの実装 class MyService extends Service implements IServiceMethod { @Override public IBinde

  • Androidのプロセス間通信を自由自在にするAIDL

    前回の「Android 4.0のサービス/プロセス間通信の基」ではAIDLを使用した「サービス」の基を解説しました。サービスのライフサイクル、AIDL、Parcel、Parcelableに関しては、前回の記事を参照してください。 今回の記事で解説するサンプルアプリは、前回と同じものを使用します。以下よりダウンロードしておいてください。 なぜ「プロセス間通信」なのか? Androidの「サービス」は、バックグラウンドで処理を行いたい場合やバックグラウンドに常駐させたい場合に使用するケースがほとんどです。そのバックグラウンドの処理がアプリ固有であれば、同一プロセスで行い、プロセス間通信を行う必要はありません。 つまり、「複数のアプリから使用される可能性のある処理を独立したプロセスとして切り離し、それぞれのアプリから使用できるようにサービス化しておくこと、そのサービスを利用すること」がプロセ

    Androidのプロセス間通信を自由自在にするAIDL
  • 1