ActivityとFragmentActivityの違い


回答:


316

A FragmentActivityActivityAndroidサポートパッケージ用に作成されたサブクラスです。

このFragmentActivityクラスは、古いバージョンのAndroidとの互換性を確保するためにいくつかの新しいメソッドを追加しますが、それ以外は、2つの間に大きな違いはありません。ちょうどあなたは、すべての呼び出しに変更作るgetLoaderManager()getFragmentManager()するgetSupportLoaderManager()getSupportFragmentManager()、それぞれを。


4
ちょっと私はgetSupportLoaderManager()とgetSupportFragmentManager()...への呼び出しを変更しませんでしたが、それでもうまくいきます。
ルーキー

31
それがとても危険なのです:P。とメソッドをFragmentActivity継承し、その結果、コンパイラは文句を言いません。おそらく、正しくないクラスをインポートしている可能性もあります。これらのクラスを、Android SDK()ではなく、サポートパッケージ()からインポートしていることを確認してください。getLoaderManagergetFragmentManagerActivityLoaderManagerFragmentManagerandroid.support.v4.appandroid.app
アレックスロックウッド

1
android 2.xバージョンのフラグメントを使用したい場合、Activityを使用する必要があるフラグメントをサポートするバージョンのFragmentActivity nadを使用する必要があると言えますか?
新人

55
あなたの言っていることは正しいと思います。しかし、100%明確にするために...を使用してActivityいる場合は使用してくださいandroid.app.Fragment。を使用してFragmentActivityいる場合に使用しandroid.support.v4.app.Fragmentます。決して添付していないandroid.support.v4.app.Fragmentandroid.app.Activity、この例外がスローされますよう、。
Alex Lockwood、2012年

13
最初にこのチュートリアルを試してくださいFragmentsアプリケーションでの使用方法)。次に、このチュートリアルFragmentサポートパッケージのを使用する方法)に進みます。開発者サイトのドキュメントも読む価値があります。
Alex Lockwood、2012年

4

FragmentActivity一部であるサポートライブラリながら、Activityフレームワークのデフォルトのクラスです。それらは機能的に同等です。

あなたはいつも使用する必要がありますFragmentActivityし、android.support.v4.app.Fragment代わりに、プラットフォームのデフォルトのActivityおよびandroid.app.Fragmentクラス。プラットフォームのデフォルトを使用するということは、実行中のデバイスで使用されているフラグメントの実装に依存していることを意味します。これらは多くの場合数年前のものであり、サポートライブラリで修正されたバグが含まれています。


1
注:minSdkVersionサポートライブラリのバージョンはバージョン26.xx以降14です
Eugen Pechanec
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.