web-dev-qa-db-ja.com

Android Context.bindServiceは常にfalseを返し、ServiceConnectionオブジェクトがトリガーされることはありません

Googleが提供する ローカルサービスの例 に従いましたが、Context::bindService(...)は常にfalseを返し、_ServiceConnection::onServiceConnected_も呼び出されません。

Context::bindService()がすぐに返されることは理解していますが、ServiceConnectionオブジェクトがトリガーされることはありません。

これらが当てはまるかどうかわかりません

  1. 私のアクティビティはtabHost内で実行されており、それがサービスバインディングに何らかの影響を与える可能性があるかどうか疑問に思っていました。
  2. サービス自体に問題がある可能性がありますが、同じIntentを使用して同じサービスに開始サービスを呼び出すことができ、期待どおりに機能します。

誰かがこれを経験したことがありますか?私を助けてください。

ありがとう、PS私はターゲットにしていますAndroid 1.6

34
codinguser

それで私はついにそれを理解しました。 TabSpecはアクティビティにバインドできません

アクティビティでbindServiceだけでなくgetApplicationContext()。bindServiceを使用すると、高レベルのアプリケーションコンテキストを使用しているため、問題が解決します。

これが誰かを助けることを願っています!

60
codinguser

私は今これは古いですが、私は少し異なる問題を抱えていました。プロジェクトのパッケージをリファクタリングしました。そのため、ファイルの名前は変更されましたが、Eclipseはマニフェストファイルを更新しませんでした。そこで、マニフェストファイルを手動で修正し、パッケージの名前も変更しました。

2