3

Androidでアクティビティを開始する次の2つの例を見てきました。

例1

Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class);
CurrentActivity.this.startActivity(myIntent);

例2

// Calling activity
NextActivity.show(this)

// In the called activity
static void show(Context context) {
        final Intent intent = new Intent(context, NextActivity.class);
        context.startActivity(intent);
}

2つの例の明らかな違いは、アクティビティの作成方法のロジックをアクティビティの実装にアタッチすることです。他に重要な違いはありますか?(たとえば、呼び出し元のアクティビティは、ある場合には呼び出されたアクティビティが終了するまで待機するように指示されますが、他の場合は終了しないように指示されます)。

4

2 に答える 2

4

最初のメソッドの2行のコードが、たまたま2番目のアクティビティのクラスにある静的メソッドにあることを除いて、2つのメソッドに違いはありません。

アクティビティを開始するために実行されている実際のコード行は同じです。したがって、2つのメソッドの動作は同じになります。

于 2010-02-09T18:59:05.507 に答える
1

また、コードを次のように短縮することもできます

context.startActivity(new Intent (context, NextActivity.class));

インテントのインスタンスをフィールドとして作成する唯一の理由は、フラグを設定したり、エクストラを追加したりする必要がある場合などです。

于 2010-11-28T18:31:21.947 に答える