2017-01-17 1 views
0

私のAndroidアプリケーション全体に同じ問題があり、スレッドの理解に欠けているか、間違った構文ではないので、私の質問はコードにありません。スレッド化されたNavigationDrawerActivityのフラグメントビュー

私は、クライアントサーバーソケットアプリケーション、データベースを扱うNetBeansアプリケーション、およびこのサーバーに接続してデータを取得するアンドロイドアプリケーションを作成しています。例:アンドロイドアプリは、取得したいデータのフラグを送信し、サーバはフラグを受け取り、データを準備し、アンドロイドアプリケーションが受け取った順に送信します。

これを達成するために私は多くのアプローチを試みましたが、非同期タスクは動作しませんでした。なぜなら、それぞれのアクションに応じてビューを更新するために異なるデータが必要になり、非同期タスクは、私が間違っていれば私を訂正してください。

私はスレッドを使って作業し、スレッドを開き、接続を確立し、フラグを送信し、データを受け取り、それに従ってビューを更新します。

これは、ユーザーがログインボタンを押すと、サーバーに接続するためのスレッドが作成され、ユーザーデータがサーバーに送信されていることを示すフラグを送信し、サーバーが受信して確認し、そうです。

私の主な質問は、ナビゲーション・ドロワが作成され、作成時にサーバーに接続してそのアイテムのデータを取り出すスレッドを作成することです。同じことを使用するフラグメントを作成しました。ユーザーがドロワーアイテムを押すと、そのビューを更新するデータを受け取るスレッドを介してサーバーに接続するフラグメントを作成する必要があります。このフラグメントビューをナビゲーション引き出しアクティビティに追加する必要がありますが、動作しません。アクティビティ自体がスレッド化されているためです。私は意図通しナビゲーションドロワー活動に到達しようとするたび

また、他の活動に、それは私がこの固定していることができる方法

public void ThreadIntent(final Intent myIntent) { 
    runOnUiThread(new Runnable() { 
     public void run() { 
      myIntent.putExtra("userid", TA_ID_User); 
      startActivity(myIntent); 
      finish(); 
     } 
    }); 
} 

例えば、この機能を使用しても動作しませんか?

答えて

0

アクティビティごとに複数の内部Asynctaskクラスを指定し、onCreate()メソッドでそれらを実行できます。スレッドで動くのではなくAsynctaskを使う方が良いと思います。

Asynctaskでは、サーバーデータでビューを更新するには、onPostExecute()メソッドを使用します。

関連する問題