2011-06-30 7 views
0

アクティビティのコミュニケーションを可能にするスレッドにクラスusign(new Thread).start()を変換する必要があります(たとえばsej alert.show()などが可能です)。Androidハンドラ/スレッドonアクティビティ

クラスには、次のようになります。私はこの作業を行ったが、それは停止し

public abstract class MyClient implements Runnable 
{ 
    private Handler mHandler = new Handler(); 
    public void connect() 
    { 
    if (!running) 
    { 
     this.running = true; 
     mHandler.post(this); 
     // (new Thread(this)).start(); 
    } 
    } 

    public void run() 
    { 
    while (this.running) 
    { 
     ... 
    } 
    // thread ended 
} 

。今から私は、黒い画面を持っていると私は取得

Activity idle timeout for HistoryRecord{...} 

どのように私はこの問題を解決することができますか?

+0

正確に何をしようとしていますか?私は、サーバーに接続してデータを読むことをお手伝いします。 – dcanh121

答えて

0

AsyncTaskを使用します。これは、UIスレッドとのやりとりをスレッドとハンドラよりも簡単に行うために設計されています。参照:http://developer.android.com/reference/android/os/AsyncTask.html

+0

確かに...実行可能クラスを変換する方法 – xpepermint

+0

@xpepermint:これを読んでください:http://developer.android.com/resources/articles/painless-threading.html AsyncTaskとしてクラスを再実装するだけです。 – Marmoy

+0

クラスは純粋なJavaコードがあるXYライブラリ。 – xpepermint