2016-07-12 3 views
2

で凍結を防ぐために、どのように私はこのようなコードを実行することができます。 "Appliction.DoEvents()"は、フォームを正しくリフレッシュし、ユーザーがアクションを実行できるようにします(ボタンのキャンセル、ストロークホットキーなどを押してください)。どのように私はAndroid用のJavaのようなことができますか?は長い操作VB.NETで

答えて

2

実行中にUIや他のコンポーネントが反応し続けるようにするには、コードをスレッドで実行する必要があります。

スレッドからメソッドを実行する方法の非常に単純明快な例については、このドキュメントを参照してください:

public class MyThread extends Thread { 
    public void run() { 
     //do some background work 
     //put whatever you want your thread to do here 
    } 
} 

そして、このようにそれを呼び出す:https://docs.oracle.com/javase/tutorial/essential/concurrency/runthread.html

は、基本的にはThreadクラスを拡張したいです:処理するために、しばらく時間がかかる場合があります長い操作について

new MyThread().start(); 
2

、これを行うには、いくつかの方法があります:

  • service(IntentService - サービスのサブクラスである必要があります)を使用します。サービスがバックグラウンドで長時間の操作を完了すると、いつでも結果を得ることができます。
  • AsyncTaskを使用してください - バックグラウンドでも実行されますが、UI要素の準備、データベースやファイルからのデータ読み込みなどの操作を短くすることをお勧めしますが、UIスレッドをフリーズすることはありません。
  • Threadサブクラスを作成すると、@ nhouser9の答えに記載されているようにうまく動作するはずです。

目標は、UIスレッドのオーバーワーキングを回避し、ユーザーエクスペリエンスに悪影響を与えることを避けることです。

こちらがお役に立てば幸いです。

関連する問題