2013年3月4日月曜日

[Android]外部serviceをstartServiceってどうやるの

外部のServiceと連携してほげほげしたい場合、
AIDL使ってバインドする例がよくあるよね。
外部ServiceをstartService()する人少ないけど、やったらできたよって話。
Serviceに値渡すだけとかならこの方が気楽かも。

1.Service側の実装
Serviceはふつうに実装してね。
編集するのはマニフェストで、
外部に公開するからandroid:exportedをtrueにしてもらって、
Intentfilter追加するよ。
    <service
        android:name=".HogeService"
        android:exported="true">
        <intent-filter>
            <action android:name="com.android.hoge.HogeService" />
        </intent-filter>
    </service>

2.呼び側
呼ぶ人はほんとに呼ぶだけ
    Intent intent = new Intent("com.android.hoge.HogeService");
    intent.putExtra(extra, true);//好きなデータ渡してみたり
    startService(intent);//呼ぶだけ

これでふつうに起動できたよやった

0 件のコメント:

コメントを投稿