1

ライブラリ プロジェクトで定義された共有アクティビティ クラスがあり、それを使用するどのアプリケーションでも変更されず、したがってサブクラス化する必要がないと仮定すると、このアクティビティをサブクラス化せずにアプリケーションを作成する方法を得ることができますか?

私の質問をよりよく説明するために、ライブラリ プロジェクトに 1 つのアクティビティがあるとします。

public class LibActivity extends Activity {
 ...
}

そして今、そのライブラリ プロジェクトを使用してアプリケーションを作成しています。本当に作成する必要がありますか

public class AppActivity extends LibActivity {
 // totally empty!
}

アプリケーションが独自のアクティビティを独自に参照できるようにするためだけAndroidManifest.xmlですか?

ライブラリのアクティビティ コアの動作を変更する必要がある場合にのみ、アクティビティをサブクラス化する、最小限のアプローチを採用できますか?

4

2 に答える 2

2

完全修飾された答えは次のとおりです。

はい、アクティビティ ベースのアプリケーションは、ライブラリのアクティビティからアクティビティを派生させる必要はありません。アプリケーションは、ライブラリのアクティビティを変更せずにそのまま使用します。

はい、ライブラリのアクティビティ コアの動作を変更する必要がある場合にのみアクティビティをサブクラス化する、最小限のアプローチで方法を得ることができます。

ライブラリとアプリケーションの両方AndroidManifest.xml同一の でこれを確認できました。この冗長性の一部を排除できるかどうかを確認することは興味深いでしょう。これを実験して報告します。

更新:案の定、唯一のアクティビティがライブラリで定義され、ライブラリに AndroidManifest.xml<application>or <activity>! アプリケーションAndroidManifest.xmlにそれらがある場合、これは可能です。

于 2011-07-04T14:23:53.073 に答える
1

アプリケーションAndroidManifest.xmlからライブラリアクティビティクラスを直接参照できます。そのように完全修飾名を指定するだけですandroid:name="com.example.LibActivity"

于 2011-06-29T18:29:22.860 に答える