問題タブ [onserviceconnected]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - アプリケーションを 3 回または 4 回起動した後、bindService の後で onServiceConnected が呼び出されない
奇妙な問題に直面しています。アプリの起動時にアクティビティをサービスに接続しています。サービス接続が正常に確立され、Samsung galaxy S5 やその他のデバイスでも正常に動作します。しかし、Moto E、Moto G などの他のデバイスでは動作します3回か4回発射した後、2回か3回だけで、まったく機能しません。サービスとアクティビティ間の通信は、マッサージャーを使用して実現されます。アプリが動作を停止するonServiceConnected
と呼び出されないことがわかりましたが、この場合でも bindservice は true を返します。同様の問題はここに記載されていますが、回答はありません
これは、サービスをアクティビティにバインドする方法です
以下はMyServiceのonBindです
ここで、messenger は Messenger のインスタンスであり、アクティビティとサービスの間で通信します。
android - Android: bindService の後に onServiceConnected が呼び出されない
私が見つけた多くの同様の質問のどれも、私の問題を解決するのに役立ちませんでした.
ここに私が見たいくつかの質問があります:
ServiceConnection.onServiceConnected() は、開始されたサービスにバインドした後に呼び出されませんでした
Context::bindServiceがtrueを返しても、ServiceConnection::onServiceConnectedが呼び出されませんか?
これが私のAndroidアプリコードの一部です:
おわかりのように、myNetworkQueryServiceConnection は bindService メソッド (onCreate() にあります) 内から呼び出す必要があります。これは(理論的には)onServiceConnectedも実行する必要があります(私はそう思います)が、コードにブレークポイントを配置すると、そのメソッド内で停止することはありません。デバッグを行ったところ、bindService が false を返すため、何らかの理由で正常にバインドされていません。
Android でサービスをバインドする必要があるのはこれが初めてなので、何かを見逃していると確信しています。誰かが間違いを指摘してくれることを願っています。
不足している情報がありましたらお知らせください。何が必要なのかわかりません。アプリ コード全体をここに掲載することはできません。
編集:マニフェストにサービスを登録することについて読み続けていますが、それがどこでどのように行われるのかわかりませんか? このプロジェクトのマニフェストは次のとおりです。
確かにサービスについては何もわかりませんが、追加する方法がわからないのでしょう。
android - onServiceConnected は Service onCreate の後にのみ呼び出されますか?
現在の Android プロジェクトでは、 を介してサービスを開始してからstartService()
、 を使用してサービスにバインドしていますbindService()
。(私がこれを行うのは、通信できるサービスを開始したいからです。気にしないでください)
コンテキストがサービスにバインドされた後、通常、この権利を理解していればonServiceConnected()
、ServiceConnection
(以前に作成した) 私のコンテキストが呼び出されます。
サービスのすべてのコードonServiceConnected()
が実行された後にのみ呼び出されると思いますか?onCreate
android - Android アプリ内課金: onServiceConnected が呼び出されず、bindService が「false」を返す
現在、ユーザーが少額の寄付を行えるように、アプリ内課金をアプリに追加しようとしています。私は開発にAndroid Studioの最新バージョンを使用しており、このガイドに従っています(ステップバイステップで、前述のとおりにすべてを行っています...少なくとも私はそうしていると思います:-)):https://developer.android.com /google/play/billing/billing_integrate.html
AIDL ファイルは上記の場所 (パッケージ com.android.vending.billing の下) に配置され、フォルダーsrc/main
の下に生成されていることがわかります。gen
製品の取得をテストしたところ、メソッドが呼び出されないことに気付きonServiceConnected
ました。次のようにアクティビティに実装されています。
サービスへのバインディングは次のように作成されます (同じアクティビティ内)。
次の 2 つのことに気付きました。
- 寄付活動を終了すると、コンソールに例外が表示
... has leaked ServiceConnection ... that was originally bound here
されます。しかし、それは私の主な問題とは無関係だと思います.onServiceConnected
また、なぜそれが公式ガイドにあるのですか? bindService
ブール値を返し、戻り値を確認したところ、falseでした。だから、問題はここからだと思います。
次のように、サービスのエントリを AndroidManifest.xml に追加する必要があると言う人もいます。
これを試してみましたが、違いはなく、このエントリは公式ガイドにも記載されていないため、必要ないと思います。
私が間違っていることはありますか?