• ベストアンサー

Android-bindServiceのルール

AndroidのServiceは通常、startServiceで起動して、stopServiceで停止しますが、 bindServiceとunbindServiceを使用した場合、この2つの代わりになるものなのでしょうか? あるいは、bindServiceで接続を確立したとしても、startServiceの実行は必要なのですか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#161640
noname#161640
回答No.1

>bindServiceとunbindServiceを使用した場合、この2つの代わりになるものなのでしょうか? 性質が違いますので、まったくの代用にはならないでしょう。既に起動した状態でbindServiceしたとき、startServiceは呼ばれませんがbindServiceは呼ばれます。従って、「サービス起動時に1回だけ実行する初期化処理」などは、bindServiceに用意すると、バインドするたびにサービスが初期化されてしまいます。 >あるいは、bindServiceで接続を確立したとしても、startServiceの実行は必要なのですか? 本来は、バインド時に必要な処理はbindServiceに用意すべきで、バインド時にstartServiceを呼び出す必要があるような設計をすべきではないでしょう。起動時の初期化処理と、バインド時の初期化処理は違いますので。両者を明確に分けて処理を考えればよいだけと思います。ちょっと、どこで引っかかっているのかよくわからなかったのですが……、なにか、両者の切り分けがうまくできないようなケースがあったのでしょうか。

rinet8223
質問者

お礼

よく判りました。 bindServiceとStartServiceの両方が書いてあるソースコードを見たので混乱してました。 ご回答ありがとうございました。

関連するQ&A

  • Android Serviceの戻り値

    Androidの開発を行っています。 サービスが「強制終了されて再起動した時」という条件で処理を行いたいです。 【START_REDELIVER_INTENT】を使用すればサービスが強制終了されて再起動したというのを感知できるのかなと思ったのですが・・・ http://yuki312.blogspot.jp/2012/07/androidserviceonstartcommand.html には 「システムはサービスを新たにインスタンス化し、サービスの再起動を行います。 再起動時のonStartCommandには、強制終了前と同じ内容のIntentが渡されます。 再起動順序は強制終了前の起動順序と同じです。(A⇒Bで起動した場合、A⇒Bで再起動) また、startServiceによりサービスを複数回起動していた場合は、起動した回数分 onStartCommandが呼ばれます。」 と説明されています。 サービスA、サービスBと2つのサービスが別クラスで定義されていても戻り値が【START_REDELIVER_INTENT】だと混同されてしまということでしょうか?

    • ベストアンサー
    • Java
  • Androidスマートフォンの起動中アプリについて

    スマートフォンis03、xperia arc の起動中アプリ 私のandroid au IS03ではホームボタン長押しで「起動中のアプリ」がみれて、設定→アプリケーションで「実行中のサービス」 がみれます。 1、設定→アプリケーションで「実行中のサービス」はandroidなら大体同じと思いますが、xperia arcでの前者「起動中のアプリ」のやりかたが知りたいです。 2、ちなみにこの二つの違いは何なのでしょうか?なんとなく種類が違うのはわかるのですが表現の仕方がわかりません。。。 3、タスクキラーのアプリで「実行中のサービス」の方を制御している(つもり)ですが、実際節電になっているのでしょうか?いまいち実感がわかないです。。特にskypeなどは一度サインインするとずっと画面右上にマークが出ていて、手動で「実行中のサービス」から停止しないと消えません。アプリ側にそういう設定も見られなかったのですが。。 よろしくお願いいたします!

  • androidの白ロムについて

     現在、auのガラケーを所有しています。 基本的に電話やネットを使わない人間なので、ガラケーの月間使用量は通常2000円程度です。  androidを、アプリ開発のために、使用したいため、購入を考えています。    通常のガラケーを使用したままで、androidを極力安く手に入れたいです。  androidの使い方としては、自宅でWifi接続して(光を契約していて、無線LAN対応ルーターを所持しています。)アプリを取得して試したり、自作アプリを試したりする用途です。通信は、電話はできなくてよいし、自宅でのWifiのみで十分で、外に持ち出す場合は、HDDの動画を見れたりする程度で十分です。 いわゆる白ロムを購入すれば、上記使い方ができるでしょうか?何かデメリット等あるでしょうか。 また、白ロムを購入して、auショップ(そもそも、auの必要はない?)で何らかの手続きが必要でしょうか? 上記使い方の場合、通信会社と契約は不要という認識なのですが、3G回線は使えないということになるのだと思っています。その場合のデメリットございますでしょうか? よろしくお願いします。

  • 実行中のアプリについて

    Androidのスマートフォンなのですが、実行中のサービスの項目について質問があります。 実行中のサービスにたどり着くには、二つの方法があると思いますが、 *1設定→アプリケーション→実行中のサービス *2設定→アプリケーション→アプリケーションの管理→実行中 となりますが、二つを見比べると*2には*1にないアプリがあり、なおかつ同じ起動中のアプリでも、 容量が全然違います。 なぜ違うのでしょうか。違いは何でしょうか? 稼働している電池をいっぱい食うアプリを見るためには、どっちを見たらいんでしょうか? そして、どっちから起動を停止した方がよいのでしょうか? へんな質問ですみません。 よろしくお願いいたします。。

  • PHPを通信させずにAndroidで動かしたい

    プログラムを勉強している者です。 PHP、Apache、sqliteで検索システムや、 数字の計算プログラムなどを作っています。 これを、Apacheを起動させずに、PCで動かしたり、 Androidに入れて動かしたいのですが、 Apacheを起動なしの”ネット接続”をしないで上記のことをするのは、 PHPでは無理なのでしょうか? Androidの場合、phpで作ったものを全てJava書き換えて 作り替える必要があるのでしょうか? 一番手順が少ない方法で、PCやAndroidで動かす方法をご教授ください。 皆様よろしくお願いいたします。

    • ベストアンサー
    • Java
  • androidのアプリ起動中にホームボタン

    android初心者です。 androidのアプリ起動中にホームボタンを押すと、ホームボタンをおすと、 デスクトップになりますが、 アプリは終了したわけでは無いですよね。 (本体設定→アプリケーション→実行中のサービスで見ると残っています) いったいどうやったら、実行中のアプリの画面に戻れるのでしょうか。 わかる方がいらっしゃいましたら教えてください。 ちなみにスマートフォンはドコモのSO-03Dを使っています。

  • AndroidからiPhoneのテザリングトラブル

    Android(POCO X5 5G)からiPhone12にテザリングをして使う機会が多いです。 Android-iPhoneの接続自体はできてるようなのですが、iPhoneからインターネットを使えない事がしばしばあります。 Androidを機内モードもしくは再起動して接続するとインターネットが使えるのに、1度途切れた後に再接続するとまた使えなくなります。Bluetoothで接続した場合も同じ症状です。 これが何故だかご存知の方、いらっしゃらないでしょうか?

  • androidです。

    androidです。 USB接続のカメラって特別なアプリ必要ですか?

  • Android-Login後にGPS取得する

    Androidのアプリを開発しています。 起動時にログイン処理を行い、それが成功したらGPSを定期的に取得するサービスの起動を行いたいと思っていますが、上手くいきません。 1.ログイン中は「ログイン中です」、完了したら「ログイン完了」と表示したいのですが   onCreateのは画面の表示前なので、これらの処理をするとしたらonCreateで、   ログインの処理を行うThreadを起動する。という考え方であってますでしょうか? 2.またログインをThreadで起動したとして、それが成功したらGps取得を行う処理実行。     という流れを考えていますが、定期的なGps取得のサービスはonCreateで実行しています。   そのため、「Loginが成功したら、Gps取得サービスを開始」という事ができません。   どのような作りにすれば、できますでしょうか?

    • ベストアンサー
    • Java
  • アンドロイドからガラケーへ

    よろしくお願いします。アンドロイド携帯からガラケーに機種変しました。その場合のアンドロイド使用時に使っていたgooglepayはどのような扱いになるのでしょうか?そのまま継続されているのでしょうか?それとも解約されているのでしょうか?ご回答宜しくお願いいたします。 ※OKWAVEより補足:「ドコモの製品・サービス」についての質問です。

専門家に質問してみよう