問題タブ [android-service-binding]
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-activity - AOSP: Activity.java で SystemService のインスタンスを作成中にエラーが発生しました
カスタム システム サービスを AOSP に追加しました。Activity.java クラスで自分のサービスを利用したいと思い、startActivityForResult() メソッドにいくつかの変更を加えたいと考えました。PackageManagerService のインスタンスを作成するのと同じ方法です。しかし、何らかの理由でこれを実行できません。logcat から次のエラーが表示されます。
Activity.java でサービスのインスタンスを作成する方法。また、Activity.java に systemReady() のようなメソッドがありますか。PackageManagerService にそのような種類のメソッドがあることは知っていますが、それは Activity ではないサービスです。そのため、どのように確認するのが最善なのだろうかと考えています。任意の考えをいただければ幸いです
android - テストで onStartCommand を複数回呼び出す方法は?
私は次のデザインを持っています:
サービス インスタンスを取得し、onStartCommand を 3 回呼び出すにはどうすればよいですか?
助けてくれてありがとう
android - サービス: bindService で開始した場合、onTaskRemoved は呼び出されません
onTaskRemoved()
メソッドが実装されたサービスがあります。アプリがスワイプによって最近のアプリリストから削除されたときに関数が呼び出され
てサービスが開始されると。startService()
onTaskRemoved()
ただし、サービスが で開始された場合、bindService()
呼び出さonTaskRemoved()
れることはありません。
onTaskRemoved()
アプリが開始された後、スワイプによって最近のアプリリストからアプリが削除されたときに、サービスを呼び出すにはどうすればよいbindService()
ですか?
Android は、次のライフサイクル メソッドで起動すると、次のライフサイクル メソッドを呼び出します。
android - バックグラウンドで継続的に実行される、viber や facebook のようなサービスを作成するにはどうすればよいですか?
私はサービスを使用するアプリを作成しようとしています.しかし、私はサービスを継続的に実行する必要があります.360セキュリティ、タスクキラーなどのサードパーティアプリを使用する場合、サービスを停止したくありません.この方法でサービスを作成しました.ありがとう前進。
START_STICKY を使用しましたが、これは役に立ちません。
java - 構成変更のために新しいコンテキストからサービスにバインドするか、アプリ コンテキストからバインドしますか?
バインドされたサービスがアプリでバックグラウンド作業を行うのに適しているかどうかを調べようとしています。要件は、さまざまなアプリケーション コンポーネントがさまざまな優先度の Web 要求を作成できることです。(したがって、サービスはある種のキューを維持し、優先度の高い他のリクエストに対する進行中のリクエストをキャンセルできる必要があります)。アプリケーションの使用が完了した後にサービスが実行されていることに気付かないように、サービスがユーザーにとって比較的目立たないようにしたいと思います-アプリケーションが閉じられている間も継続するより重要なことをしたい場合は、 startForeground( を使用できます) プロセス中に通知をプッシュします。
最初の解決策: アクティビティからのバインド
そのため、特定のアプリケーション コンポーネントについては、サービスにバインドして作業を完了できる必要があります。しかし、アクティビティがバインドを実行している場合、アクティビティが閉じられるため、構成の変更 (ローテーション) 中にバインドが失われるというよく知られた問題があるようです。
したがって、作成した別のコンテキスト ( new Context()
) を使用して、それをサービスにバインドし、UI 以外のフラグメントを使用して、構成の変更が終了したと判断するまでこのコンテキストを維持できると考えていました。これは、構成の変更中にのみ、またはアクティビティからのバインディングの永続的な代替手段としてのみ行うことができました。(これは、構成の変更後もインスタンスを維持するための標準的で推奨される方法であることを指摘しておく必要があります)
ソリューション番号 2:
私が見る主な代替案は、アプリケーション コンテキストを使用してバインディングを行うことができるというものですが、これは長すぎる可能性がありますか? および/またはアプリのコンテキストとサービスの間に循環的な関係があり、サービスとアプリのコンテキストが破壊されるのを防ぐことができますか?
質問:
したがって、私が自分自身に答えようとしている質問は、最初の方法 (一時的なコンテキストを持つアクティビティ) を使用する必要があるかどうかです。それとも 2 番目 (サービスをアプリ コンテキストにバインドするだけ) ですか?
アプリのコンテキストがサービスに複数回バインドし、同じ回数だけバインドを解除できると考えるのは正しいですか? (つまり、コンテキストごとに複数の有効なバインディングを持つことができます)?
new Context()
最初のソリューションで独自のコンテキスト ( ) を使用すると、問題が発生する可能性がありますか?
編集
詳細情報を見つけました: https://groups.google.com/forum/#!topic/android-developers/Nb58dOQ8Xfw
また、コンテキストを任意に「作成」することは難しいと思われるため、ソリューション 1 と 2 の組み合わせは、構成の変更全体でサービス接続が維持され、バインディングがアプリ コンテキストにある場合に適しているようです。アプリのコンテキストから 2 回バインドを解除する可能性については、まだ懸念があります。自分でバインディングの数を数えることは不要のようです-バインディングがコンテキストごとではなく接続ごとであることを確認/拒否できますか?
android - サービスへのバインド - バインドが成功したときにコールバックする - Android
これを行うエレガントな方法がわからないところまで来ました。
私がFragment
、 named FragmentA
、およびService
namedを持っているとしましょうBackupService
私はそれを次FragmentA
のようにバインドしましたBackupService
:
と:
これで、バインディングがタスクであることがわかりasynchronous
ました。ここで私の質問が出てきます。
を使用するというアイデアを思いつきましたが、フラグメントがオブジェクト (この場合は ) を投稿し、サービスを参照し、同時にバスからイベントをリッスン/受信するEventBus
ため、エレガントではありません。backupBoundService
たとえば、同じフラグメントの投稿とイベントの受信 (自分自身への投稿) になります。
フラグメントがバインドされているときに実行中のサービスの参照を取得するエレガントな方法はありますか? このケースにはパターンがあると確信していますが、これまでのところ、ここでグーグル検索して検索してきました。
java - スレッドからサービスをバインドする
スレッドからサービスに bindService することは可能ですか?
実行中のサービスに文字列を渡そうとしましたが、メソッドを実行して通知を表示しますか?
それを行う正しい方法は何ですか?
前もって感謝します。
android - フラグメントからサービスをバインドする方法は?
フラグメントからサービスにバインドする方法がわかりません。
誰かがそれを行う方法についてアイデアを教えてもらえますか?