0

ライブラリ プロジェクトと、アプリの 1 つの無料バージョンと有料バージョン用のプロジェクトがあります。ライブラリ プロジェクトには、「ベース アクティビティ」があります。この「ベース アクティビティ」は、無料版か有料版かに応じて、子アクティビティを開始する必要があります。

私がしたことは、startActivity() でインテントを起動する直前でした。インテントを返さなければならない「ベース アクティビティ」のメソッドを呼び出します。「Base Activity」サブクラス (有料版と無料版) でこのメソッドをオーバーライドし、次のようなインテントを作成します。

return new Intent(subClassOfBaseActivity.this, ChildClassA.class);

と:

return new Intent(subClassOfBaseActivity.this, ChildClassB.class);

さて、私の質問は、 BaseActivity.this の代わりに subClassofBaseActivity.this を渡してインテントを作成しても大丈夫ですか?

この方法は全体的に大丈夫ですか?

4

3 に答える 3

1

新しい を作成するときは、とIntentを渡す必要があります。ContextActivity

コンテキストは、アプリケーションがいくつかのリソースにアクセスできるようにするインターフェイスです。

基本的にあなたの場合、コンテキストとアクティビティを想定どおりに渡していますが、 baseActivity をコンテキストとして渡す必要があるかどうかを尋ねます。基本的に、Android開発者の次の行のせいだと思います:

Interface to global information about an application environment基本アクティビティをコンテキストとして渡す必要があります..

一方、サブクラスはおそらく baseClass から継承されるため、コンテキストは同じである必要がありますが、baseClass をコンテキストとして渡すと、より読みやすく明確になります。

コンテキストの詳細については http://developer.android.com/reference/android/content/Context.html

于 2013-05-14T20:52:11.800 に答える