0

かなり大きなアプリを作成するのは初めてで、その中にはたくさんのセクションがあります。

混乱を避けるために、UI とバックグラウンド プロセスを別々のクラスに保持したいと考えています。ただし、可能な限り最善の方法でそれらの間で通信するにはどうすればよいですか。私は今までいくつかのアプローチに出くわしました:

  1. 別のクラスでバックグラウンド スレッドを宣言し、その onPostExecute() メソッドを UI スレッドで定義しました。

        new SetupDefaultFeeds(context) {
        @Override
        protected void onPostExecute(List<Feed> result) {
            default_feeds = result;
    
            for (Feed t : result) {
                String log = t.toString();
                Log.d("DEFAULT feed", log);
            }
            menu_btn[0].performClick();
        }
    }.execute();
    
  2. バックグラウンドと UI スレッド間のフラグ変数を使用したシグナリング。

  3. スレッドとハンドラー。

他の方法はありますか、可能な限り最良の方法は何ですか。ありがとう !

4

1 に答える 1

1

Handlerを介してメッセージを渡すことは、通常、これを行うための最も「Android らしい」方法です。フラグ変数を介してすべての通信を行おうとすると、かなりの頭痛の種になる可能性が高くなります。

編集: Android 自体は、2 つのクラスをリンクする方法を提供していません。手動で行う必要があります。非常にうまく機能する 1 つの方法は、通信用のインターフェイスを作成し、UI クラスまたはバックグラウンド スレッドにそれを実装させることです。次に、クラスを作成するときに、他のオブジェクトへの参照を渡し、インターフェイスを介して通信できます。

ただし、2 つのクラスを完全に切り離したい場合は、代わりに BroadcastReceiver を使用し、それを使用して UI とバックグラウンド スレッドの間でメッセージを送信することをお勧めします。

于 2012-10-15T08:29:12.143 に答える