問題タブ [android-intentservice]
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-intent - GCM メッセージの PROJECT_ID が null です
バックグラウンド
- 私は 1 つの Android アプリを持っています
- 私は 2 つの Google API プロジェクトを持っているので、明らかに 2 つの SENDER_ID と 2 つの API キーがあり、これらのプロジェクトは両方とも Google Cloud Messaging で有効になっています。
- インテントから EXTRAS を抽出し、インテント エクストラ バンドルの「from」キーに基づいてプロジェクトごとに異なる IntentService を生成する 1 つのブロードキャスト レシーバ。また、ComponentName を使用して IntentService が生成されます。
この「from」キーは PROJECT_ID/ SENDER_ID であり、これらに基づいて、インテントを処理する別のインテント サービスを生成します。
これを行う手順は、 https ://developer.android.com/google/gcm/client.html から学びました。
問題 アプリケーションの起動時に、それぞれの PROJECT_ID/SENDER_ID で GoogleCoudMessaging シングルトンを使用して GCM サーバーに登録する 2 つの JAVA クラスを呼び出します。
これは正常に実装され、両方の登録 ID を取得します。
しかし、これらの両方の Google プロジェクトに対してプッシュ通知を送信すると、両方のインテント エクストラを受信し、1 つはキー「from」の下に PROJECT_ID を持ち、もう 1 つはこのキーの下に null を持ちます。
問題は、2 番目に登録されたプロジェクトは常にプッシュ メッセージで PROJECT_ID を取得するのに対し、最初に登録したプロジェクトは PROJECT_ID をインテント エクストラで取得しないことです。
実装に欠けていることは明らかですか?
android - インテント サービスはメモリ不足で持続します
Intent Service
システム メモリが の実行を許可していないときにを永続化する方法Intent Service
。
android - アプリがオフのときにブロードキャストを受信するには?
ACTION_SCREEN_ON
アプリがオフのときでもアプリをブロードキャストに応答させるにはどうすればよいですか?
アラームについて読んでいますが、IntentService
何がベスト プラクティスなのかわかりません。
画面のロックが解除されるたびに写真を撮るアプリを作ろうとしています。
android - IntentService を STICKY として作成できますか?
ドキュメントには、intentservice が暗黙的に stopself を呼び出すと書かれています。それで、インテントサービスをスティッキーにできるかどうか疑問に思っていました。
ありがとう
java - WakefulBroadcastReceiver から IntentService を開始する方法
この質問に投稿するコードを使用して、完全かつ非常に簡単に再作成できるはずのアプリケーションがあります。マニフェスト ファイルは次のとおりです。
ご覧のとおり、アクティビティ、(ウェイクフル) ブロードキャスト レシーバー、およびインテント サービスがすべて同じパッケージに含まれています。アクティビティは起動時に開始されます。コードは次のとおりです。
onReceive
これにより、 の機能が正常にトリガーされますTestReceiver
。
ただし、これは問題が発生する場所です。関数にブレークポイントを配置するonReceive
と、間違いなく呼び出されます。ただし、MonitorService
クラスに到達することはありません。関数にブレークポイントを配置しましたonHandleEvent
が、そこまで到達しないようです。このクラスのコードは次のとおりです。
クラスのコメント行からわかるようTestReceiver
に、明示的なインテントではなく暗黙的なインテントを使用してみました。私もこの質問を読み、そこに記載されているすべてを試しました。ここで何か不足していますか?これをエミュレーター (Nexus7 API L) で実行しています。
ここに欠けているものはありますか?
android - 並行して実行される複数の IntentService
私の Android アプリには、1 分ごとに開始するようにスケジュールされたインテント サービスがあります。このインテントサービスをintentServiceA.classと呼びましょう
ここで、特定のタスクに別のインテント サービス (intentServiceB.class) を使用したいと考えています。
私の質問は:
インテントサービス B はインテントサービス A の同じスレッドに入りますか? それはキューに入りますか?または別々に実行しますか?
同じスレッドに入る場合、良い代替手段は何ですか?
ご協力ありがとうございました。