2016-10-23 10 views
0

アンドロイドアプリでは、ネットワーク操作を実行する際に主UIスレッド以外のスレッドを使用します。私は同時にいくつかのスレッドを使用してコアJavaアプリケーションを見てきました。では、ネットワーク操作以外のAndroidで複数のスレッドを使用するのがよい方法でしょうか?私がいくつかのスレッドを使用していて、自分のアプリケーションの流れに直接影響している場合、Uiの更新やユーザーが次のアクティビティに移動するまでにスレッドの1つが実行されなかった可能性があるため、データの不一致が発生する可能性があります。したがって、すべてのデータ操作は同期して行われる必要があります。だから、基本的に純粋なJavaアプリケーションのようにアンドロイドで複数のスレッドを使用するのがよい方法ですか?また、なぜこの条件はJavaアプリケーションでは発生しませんか?それは、適切なマシンと比較して複数のプロセスを処理するモバイルの能力が低いためですか?ありがとうございました。Androidでスレッドを適切に使用する

+1

はい。それは正常です。それらを使用する – Vyacheslav

+0

@ Vyacheslavので、私はデータの大きな塊がarraylistで更新されているメソッドに取り組んでいると私は別のスレッドでそれを使用する必要があります、UIに影響を与えるつもりですか?ユーザーが他の操作を実行したり、次の操作に移動するとどうなりますか? – Pritish

+0

@Pritishでは、メインスレッド以外の別のスレッドからUIを変更することはできません。実装しようとしているものがUIを変更しない場合は、AsynchTaskをバックグラウンドで実行し、終了時にメインスレッドに通知します。しかし、あなたの例では、メインスレッドの下に自分のコードを書くか、activity.runOnUiThreadを使用するかのどちらかにUIを更新する必要があります。これは、リクエストを達成するのに役立つハンドラインスタンスです。 –

答えて

3

あなたは間違った質問をしています。実際の質問は、ユーザーに最高のユーザーエクスペリエンスを提供するためにAndroidアプリをデザインするにはどうすればよいですか?プログラマーとして

、彼らはが存在ので、あなたは、概念を使用していないが、彼らはあなたがやっている事にを追加しますので。

たとえば、スレッドを調べて、アプリがブロックされたり応答しなくなったりしないようにします。あなたのアプリが多くの異なることをする必要がある場合、これらのことがある程度「並行」に起こることが多くの意味を持ちます。

もちろん、スレッドはロジックにのという複雑さを追加します。もちろん、スレッドを使用するときは、何をしているのかを知る必要があります。 のデータの不一致が発生する複数のスレッドを使用するそれ自体。

あなたは何をしているのかわからないときに何が問題になるのですか?

ロングストーリーショートパンツ:あなたの質問はのように聞こえます。Androidでマルチスレッドプログラミングを行う方法がわかりません;したがって、あなたは研究そのトピックです。たとえばhereを開始してください!

編集:結局のところ、これはバランスを取っており、実用的です。一方では、はい、(正しい!)マルチスレッドは、アプリケーションにの値を追加します。しかし、またはもちろん、のコストはで、複雑さが増します。だから、本質的な答えはおそらく:あなたはと心地よく感じる。 正しくの商品をお届けするのがマルチスレッドの方が難しいと感じている場合は、そのがあなたの質問にお答えします。快適でないものは使用しないでください!

+0

質問の部分については正しいかもしれませんが、はい、スレッドを使用してユーザーエクスペリエンスを改善できるかどうかに関係しますが、実際には分かりませんがアプリケーションで問題が発生するため、最後の最後のアプリケーションでは、通知のクリック時にviewpagerの子フラグメントに行き渡っていましたが、フラグメントが正しく接続される前にUIメソッドが呼び出されるだけで何度も呼び出されてしまいました。多くのメソッドにisadded()を実装します。 – Pritish

+0

それゆえ、私はそれを使用するのが嫌です。 – Pritish

+0

私の更新された回答を参照してください。 – GhostCat

関連する問題