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