You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
サービスを外部プロセスで実行する場合は、直接には Binder への参照がとれないので IPC による通信を行う必要があります。 ここでは AIDL によってインターフェイスを定義して、サービスプロセスにバインドする例をしめします。 AIDL によるインターフェイス定義と IPC とは? IPC、AIDL とは? IPC というのはインタープロセスコミュニケーション (Interprocess Communication, プロセス間通信) の略です。 プロセス間のメソッド呼び出しといえば RPC (Remote Procedure Call) 等がありますが、 RPC では IDL (Interface Definition Language) などでインターフェイスを定義し、 IDL コンパイラでスタブコードを生成するという方法が行われます。 Windows での開発経験がある方は C
前回に続いてAIDLのお話です。今回はCallbackしてみます。 流れとしては、 ActivityでServiceをBind ServiceのCallback登録Interfaceをコール Serviceに実装したCallback登録Interfaceで、受け取ったCallback情報をリストに登録 Callbackリストを参照して登録されているCallback Interfaceをコール Activityに実装したCallback Interfaceでなんかする みたいな感じです。 図にするとこんな感じ。 で、コードです。 まずはCallback登録用のInterface。 package jp.xfutures.android.sample; import jp.xfutures.android.sample.ISampleServiceCallback; oneway inter
前回の「Android 4.0のサービス/プロセス間通信の基本」ではAIDLを使用した「サービス」の基本を解説しました。サービスのライフサイクル、AIDL、Parcel、Parcelableに関しては、前回の記事を参照してください。 今回の記事で解説するサンプルアプリは、前回と同じものを使用します。以下よりダウンロードしておいてください。 なぜ「プロセス間通信」なのか? Androidの「サービス」は、バックグラウンドで処理を行いたい場合やバックグラウンドに常駐させたい場合に使用するケースがほとんどです。そのバックグラウンドの処理がアプリ固有であれば、同一プロセスで行い、プロセス間通信を行う必要はありません。 つまり、「複数のアプリから使用される可能性のある処理を独立したプロセスとして切り離し、それぞれのアプリから使用できるようにサービス化しておくこと、そのサービスを利用すること」がプロセ
さて前回に引き続きServiceの実装を試してみます。 今回はServiceからのCallbackを利用出来る様にしてみたいと思います。 BackgroundでServiceを走らせておいて「音楽の再生が終わったよ」というようなServiceで行っていた処理に何らかのEventが発生したらActivityに通知したいというような時に使用できます。 今回、実現する機能はServiceからのCallbackをもとにTextViewに表示するStringをupdateするというものです。 実装の要点をまとめます Activity側 Activity用のAIDLにCallback interfaceを定義 ActivityにServiceからのCallbackを受け取るためのCallback interfaceを実装 ActivityにServiceとBindするContext#bindServi
Android 4.0のサービス/プロセス間通信の基本:Androidで動く携帯Javaアプリ作成入門(31)(1/3 ページ) Android 4.0の「サービス」の深淵へ いまから約3年前、本連載の第7回「常駐アプリが作成できるAndroidの“サービス”とは」で、Androidの「サービス」を取り上げました。あれから月日も経過してAndroidのバージョンも上がり、一部のメソッドが非推奨になるなどの変更もあったので、今回あらためて「サービス」を取り上げることにします。 第7回では、「Android Interface Definition Language(AIDL)」を必要としない「ローカルサービス」にのみ着目しましたが、今回はAIDLを使用するプロセス間通信に焦点を当ててサービスを解説します。 今回のサンプルは以下よりダウンロード可能です。 上図のとおり、単にサービスを起動する「
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く