0

Java clientクライアントをJavaSwing( )からAndroid( )に移植したいAndroid client

基本的に、Java clientUDPパケットを受信するために永久にwhileループを実行し、UDPパケットのコンテンツに基づいて、対応するJFrameのUIが更新されるスレッドがあります。

今、私Android clientbackground workerのスレッドのようなものが欲しいのですがJava client、それworkerはで初期化されますmain activity。次に、UDPソケットからのリクエストがあるmain activityと、対応するアクティビティ(チャットアクティビティ)が開始され、UDPソケットからのリクエストがいくつかありthe worker、アクティビティが更新されます(このアクティビティはメインアクティビティまたはチャットアクティビティの場合があります) )画面に表示されている。

だから私の質問はどうあるbackground workerべきかです:

  • サービス
  • 通常のJavaスレッド
  • 非同期タスク
  • または何...

私の要件に最も適しているのはどれですか?

ありがとう!

4

3 に答える 3

1

バックグラウンド ワーカーはサービスである必要があります。

サービスは、バックグラウンドで実行時間の長い操作を実行できるアプリケーション コンポーネントであり、ユーザー インターフェイスは提供しません。

UI はアクティビティですが、サービスは UDP パケットを読み取り、それに応じてアクティビティが変更されます。

于 2012-04-25T08:11:57.070 に答える
0

あなたの場合、 AServiceが最も適した候補です。

于 2012-04-25T08:11:42.907 に答える
0

Android アプリケーションごとにクラス Application クラスがあります。最初にそれを拡張すると、Activity の前でもアプリが初めて起動するときに初期化されます。ここでバックグラウンド作業を実行するために、通常の Java スレッドを初期化/開始します。主な利点は、アプリのどこからでもこのアプリケーション クラスのインスタンスを取得できることです (つまり、アプリケーションのどこからでもバックグラウンド スレッドを制御できます。バックグラウンドの http 要求などを送信します。何でも ....)。変更を行い、このようなことをしたい特定のアクティビティの UI スレッドのハンドラ。

                 private Handler myHandler ; 

                  public void checkBackgroundAndUpdateUi()
                  {
                    if(conetxt.getApplicationContext().getStatus == completed)
                    {
                       initializeHandler();
                        handler.postRunnable(myRunnable);

                    }
                  }
             Runnable myRunnable = new Runnable(){

                public void run()
                 {

                  // update your UI views here .....

                 }
             };

             private void initializeHandler(){
               myHandler = new Handler ();
             }
于 2012-04-25T08:16:56.117 に答える