2

私はAndroidアプリを作成していて、リモートサーバーとデータを接続して交換しています。これまで、アクティビティクラスでスレッドとハンドラーを使用してサーバーとのインターフェイスを確立してきましたが、コードはますます乱雑で長くなっています。クラスを増やすと、(コード)の管理が容易になると思います。

これはおそらく私のプログラミング知識の大きなギャップですが、ランナブルをさまざまなクラスに配置して、メインアクティビティにメッセージを返す方法を理解できません。

よろしくお願いします。回答にはサンプルコードをお勧めします。

4

1 に答える 1

3

ハンドラーをアクティビティから2番目のクラスに渡し、必要に応じてメッセージを渡すことができます。

public class MyActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstance) {
        // ....
        Handler myHandler = new Handler() {
            @Override
            public void handleMessage (Message msg) {
                doCoolStuffWhenMessageReceived();
            }
        }
        MySecondClass secondClass = new MySecondClass(myHandler);
        // ....
    }
}

public class MySecondClass {
    private Handler handler;
    public MySecondClass(Handler handler){
        this.handler = handler;
    }

    private void someMethodToCallActivity() {
        handler.sendEmptyMessage(0);
    }

}
于 2011-08-26T20:28:49.493 に答える