アンドロイドアプリでは、ネットワーク操作を実行する際に主UIスレッド以外のスレッドを使用します。私は同時にいくつかのスレッドを使用してコアJavaアプリケーションを見てきました。では、ネットワーク操作以外のAndroidで複数のスレッドを使用するのがよい方法でしょうか?私がいくつかのスレッドを使用していて、自分のアプリケーションの流れに直接影響している場合、Uiの更新やユーザーが次のアクティビティに移動するまでにスレッドの1つが実行されなかった可能性があるため、データの不一致が発生する可能性があります。したがって、すべてのデータ操作は同期して行われる必要があります。だから、基本的に純粋なJavaアプリケーションのようにアンドロイドで複数のスレッドを使用するのがよい方法ですか?また、なぜこの条件はJavaアプリケーションでは発生しませんか?それは、適切なマシンと比較して複数のプロセスを処理するモバイルの能力が低いためですか?ありがとうございました。Androidでスレッドを適切に使用する
答えて
あなたは間違った質問をしています。実際の質問は、ユーザーに最高のユーザーエクスペリエンスを提供するためにAndroidアプリをデザインするにはどうすればよいですか?プログラマーとして
、彼らはが存在ので、あなたは、概念を使用していないが、彼らはあなたがやっている事に値を追加しますので。
たとえば、スレッドを調べて、アプリがブロックされたり応答しなくなったりしないようにします。あなたのアプリが多くの異なることをする必要がある場合、これらのことがある程度「並行」に起こることが多くの意味を持ちます。
もちろん、スレッドはロジックにのという複雑さを追加します。もちろん、スレッドを使用するときは、何をしているのかを知る必要があります。 のデータの不一致が発生する複数のスレッドを使用するそれ自体。
あなたは何をしているのかわからないときに何が問題になるのですか?
ロングストーリーショートパンツ:あなたの質問はのように聞こえます。Androidでマルチスレッドプログラミングを行う方法がわかりません;したがって、あなたは研究そのトピックです。たとえばhereを開始してください!
編集:結局のところ、これはバランスを取っており、実用的です。一方では、はい、(正しい!)マルチスレッドは、アプリケーションにの値を追加します。しかし、またはもちろん、のコストはで、複雑さが増します。だから、本質的な答えはおそらく:あなたはと心地よく感じる。 正しくの商品をお届けするのがマルチスレッドの方が難しいと感じている場合は、そのがあなたの質問にお答えします。快適でないものは使用しないでください!
質問の部分については正しいかもしれませんが、はい、スレッドを使用してユーザーエクスペリエンスを改善できるかどうかに関係しますが、実際には分かりませんがアプリケーションで問題が発生するため、最後の最後のアプリケーションでは、通知のクリック時にviewpagerの子フラグメントに行き渡っていましたが、フラグメントが正しく接続される前にUIメソッドが呼び出されるだけで何度も呼び出されてしまいました。多くのメソッドにisadded()を実装します。 – Pritish
それゆえ、私はそれを使用するのが嫌です。 – Pritish
私の更新された回答を参照してください。 – GhostCat
- 1. Androidでのスレッドの適切な使い方は何ですか?
- 2. 適切なAndroidスレッドの使用、セットアップ、および目的
- 3. AndroidマルチスレッドアプリケーションでyieldIfContendedSafely()を適切に使用する
- 4. Android:いつFragmentTransaction.removeを使用するのが適切ですか?
- 5. Android:適切なオプションメニューの使用
- 6. ionic2 navbarで適切に使用する
- 7. ネットワークデータの送信に使用されるAndroidスレッドの最適化
- 8. TYPO3:適切にイメージを使用する
- 9. Tkinter:root.after()を適切に使用する
- 10. グループを適切に使用する
- 11. 複数のスレッドでSIGTERMを適切に処理する方法
- 12. マルチタッチイベントを適切に処理するandroid
- 13. スレッドが適切に機能しない
- 14. Android、スレッドの使用
- 15. 未使用のスレッドを適切にクリーニングするにはどうすればよいですか?
- 16. 適切なAndroidデータベース
- 17. カーネル内のスレッドを適切に処理する方法は?
- 18. IoCを適切に使用するのはいつですか?
- 19. 使用する方法モック適切
- 20. MyBatisでsql.Arrayのキャッシュを適切に使用する方法
- 21. asyncをノードjsで適切に使用する
- 22. イベントの適切な使用
- 23. strncmpの適切な使用
- 24. RealmRecyclerViewAdapyterの適切な使用
- 25. DateTimeOffset適切な使用
- 26. データテーブルの適切な使用
- 27. flatMapの適切な使用
- 28. call_user_func_arrayの適切な使用
- 29. update_user_metaの適切な使用
- 30. GLKBaseEffectの適切な使用
はい。それは正常です。それらを使用する – Vyacheslav
@ Vyacheslavので、私はデータの大きな塊がarraylistで更新されているメソッドに取り組んでいると私は別のスレッドでそれを使用する必要があります、UIに影響を与えるつもりですか?ユーザーが他の操作を実行したり、次の操作に移動するとどうなりますか? – Pritish
@Pritishでは、メインスレッド以外の別のスレッドからUIを変更することはできません。実装しようとしているものがUIを変更しない場合は、AsynchTaskをバックグラウンドで実行し、終了時にメインスレッドに通知します。しかし、あなたの例では、メインスレッドの下に自分のコードを書くか、activity.runOnUiThreadを使用するかのどちらかにUIを更新する必要があります。これは、リクエストを達成するのに役立つハンドラインスタンスです。 –