IntentServiceには独自のスレッドがあり、handleIntentから別のスレッドを開始すると、サービスは実行中または完了したサービスとみなされ、別のスレッドがアクティブかnorかどうかは関係ありませんか? IntentServiceがそのジョブを完了するとすぐに、メインスレッドに戻り、別のスレッドを呼び出すことは可能ですが、別のスレッドの開始は、アクティブではなくメインスレッドからのものである可能性があります。アクティビティ。IntentServiceがそのジョブを完了すると、 UIスレッドから別のスレッドを開始できますが、アクティビティからは開始できませんか?
0
A
答えて
0
IntentServiceは今までそれをしないでください handleIntent
から別のスレッドを開始、独自のスレッドを持っています。 IntentService
のonHandleIntent()
メソッドが返されると、サービスは破棄され、プロセスも強制終了される可能性があります。 Androidはあなたのプロセスがアイドルであり、リソースを無駄にしていることを知っているすべてのスレッドについて、あなたがどのスレッドを開始したのか分かりません。
あなたはIntentService
が行われたときに、何かを「開始」(適切な方)startActivity()
、startService()
またはsendBroadcast()
を使用する必要がある場合。再び、Androidはあなたのスレッドについて知りません。
プロシージャコールのセマンティクスが必要な場合(たとえば、サービスを開始してタスクを実行してから呼び出し元に制御を戻す場合)、IntentService
は適切なツールではありません。バインドされたサービス(またはプロセスの境界を越える必要がある場合は、バインドされたAIDLサービス)を使用します。
関連する問題
- 1. 別のスレッドを開始すると、アクティビティのスレッドは終了しますか?
- 2. スレッドの内部スレッドからアンドロイドのアクティビティを開始します。
- 3. Laravelコマンドからスレッドを開始できません
- 4. 完了したらジョブが開始されますか?
- 5. Android bluetooth:UIスレッドから開始されたスレッドはUIスレッドをブロックします
- 6. スレッドを開始できませんでしたか?
- 7. ボタンactionlistenerからアクティビティを開始できませんか?
- 8. 別のジョブからジョブを開始
- 9. フラグメントボタンからアクティビティを開始できません
- 10. スレッドからアンドロイドのアクティビティを開始する
- 11. 別のクラスとパラメータからスレッドを開始する
- 12. java.lang.NullPointerExceptionアクティビティを開始できません
- 13. SurfaceView:ClassCastException、アクティビティを開始できません
- 14. Java.Lang.RuntimeExceptionアクティビティを開始できません
- 15. アクティビティを開始できませんComponentInfo:java.lang.NullPointerException
- 16. java.lang.RuntimeException:アクティビティを開始できません
- 17. ConcurrentModificationException - アクティビティを開始できません
- 18. スレッドとスレッド開始
- 19. Jenkins:ジョブが完了したら、将来ビルドを開始する
- 20. スレッド内で新しいアクティビティを開始
- 21. スレッドの後のコールバック。開始()が終了しましたか?
- 22. アクティビティが完了したら、RecyclerView ViewHolderでスレッドを停止できますか?
- 23. スレッドから新しいスレッドを開始する
- 24. エグゼキュータを使用してもスレッドを開始できません
- 25. 他の場所からハイブを開始することができません
- 26. c#別のスレッドを開始する前にスレッドをチェックする方法は完了しました
- 27. cronジョブは新しいスレッドを開始するか、既存のスレッドが完了するのを待ちますか?
- 28. リリースを開始できませんか?
- 29. バックボーンを開始できませんか?
- 30. postgresql.serviceを開始できませんか?
ありがとう、私は最初の部分、 IntentServiceは、適切なデータを受信するとすぐに、私は別のスレッドを開始する必要がありますポイントは、メインスレッドから開始する必要があります2番目のスレッドですが、私は別のスレッドを開始することができますIntentServiceの完了を処理することができます、私はsmth、グローバルな場所が欲しい、IntentServiceの完了の受信機は、活動であることを望んでいない。 –
それをしないでください。 'IntentService'からスレッドを作成するべきではありません。私は本当にここで助けることはできません。なぜなら、「なぜなら、私はメインスレッドから始める必要がある第2のスレッド」のようなステートメントを理由なしで作成しているからです。 –
さて、ダウンロード機構を実装するライブラリを使用していますが、2番目を開始する前にリソースを取得する必要があります。結果を受け取るとすぐに2_nスレッド(ダウンロードメカニズムを処理します)を受け取り、最初のスレッドを続行する私は活動を辞めてもそれは仕事です。だから私はIntentServiceを使いたいと思ったのです アドバイスが役に立ちました、ありがとう –