0

同じアクティビティを使用してレイアウトを切り替えることで、アプリケーションで使用されるアクティビティの総数を減らす方法を試しています。私がやっていることは -

/* Class A is the actual activity */
public class A extends Activity{

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button but=(Button)findViewById(R.id.button1);
        but.setOnClickListener(new View.OnClickListener(){

        /*When the button is pressed, create an object of class B to switch layout*/
        public void onClick(View arg0) {
            B b=new B(A.this);
        }
        });
    }
}


/*Classs B handles some operation*/
public class B{

    Activity a;

    /*Set the new layout inside the constructor or call some other function to do that*/
    B(Activity act){
        a=act;
        a.setContentView(R.layout.newlayout);
    }

それで、クラスBはレイアウトを切り替えて、何らかの操作を行います。この方法が良い方法であるかどうか、また同じことを行う他の方法があるかどうかを知りたいです。ありがとう

4

1 に答える 1

0

正直なところ、この方法でスタック内のいくつかのクラスを存続させることは、常に実行されているメインのアクティビティ クラスによって参照されるため、リソースの無駄になる可能性があるため、良い習慣ではないと思います。

私の意見では、特定のタスクを処理する複数のアクティビティを管理する方が、次の 2 つの理由ではるかに優れています。

  1. オブジェクト指向の原則に準拠しています
  2. リソースを管理するタスクを OS に委任します。このため、アクティビティ クラスには、リソースを最適化するためのライフサイクルがあります。
于 2012-08-06T07:44:16.227 に答える