web-dev-qa-db-ja.com

LifecycleActivity、Activity、ActionbarActivityおよびAppCompactActivityの拡張の違いは?

Androidでは、Lifecyclerアクティビティ、アクティビティ、アクションバーアクティビティ、およびAppCompactActivityの拡張の主な違いは何ですか?これらのクラスは、使用法の点でどのように異なりますか?

68
Umer Kiani
  • 拡張 ActionBarActivity は、すべてのAPIレベルで ActionBar sの機能を提供します> = 7
  • Activity を拡張することにより、プロジェクト/ライブラリをプロジェクトに追加することを避けることができますが、11未満のAPIレベルでは ActionBar が不足します。

edit:詳細:

ActionBarActivitySupport Library の一部です。サポートライブラリは、古いプラットフォームで新しい機能を提供するために使用されます。たとえば、ActionBarはAPI 11で導入され、デフォルトではActivityの一部です(実際にはテーマによって異なります)。対照的に、古いプラットフォームにはActionBarはありません。そのため、サポートライブラリは、Activityの機能とUIを提供するActionBarActivityActionBar)の子クラスを追加します

edit2:2015年4月に更新-サポートライブラリのrevision 22.1.0ActionBarActivityが廃止されたようです。 AppCompatActivity を代わりに使用する必要があります。

edit3:2017年8月更新- LifecycleActivityLifecycleOwner but:

「アーキテクチャコンポーネントはアルファ段階にあるため、FragmentおよびAppCompatActivityクラスは実装できません(安定したコンポーネントから不安定なAPIに依存関係を追加できないため)。Lifecycleが安定するまで、LifecycleActivityおよびLifecycleFragmentクラスが提供されます。 Lifecyclesプロジェクトがリリースされ、サポートライブラリのフラグメントとアクティビティはLifecycleOwnerインターフェイスを実装します; LifecycleActivityとLifecycleFragmentはその時点で廃止されます。」

(アーキテクチャコンポーネントガイドラインからコピー)

82
stan0

よく見ると、これが見えます

public class ActionBarActivity extends FragmentActivity
implements ActionBarDrawerToggle.DelegateProvider TaskStackBuilder.SupportParentable

ここでFragmentActivityについて読むことができます: http://developer.Android.com/reference/Android/support/v4/app/FragmentActivity.html

アクティビティとFragmentActivityの違い: アクティビティとFragmentActivityの違い

また、actionBarをスタイリングするためのいくつかの新しいテーマがあります... https://developer.Android.com/training/basics/actionbar/styling.html

ActionbarはAPIレベル11で導入されました。com.Android.support:appcompat-v7:+は、Android 3.0以下で実行されているデバイスのアプリにActionBarを含めることができるサポートライブラリです。そのため、APIレベル11未満のアクションバーが必要な場合、アクティビティはActionBarActivityを拡張する必要があります。

APIレベル11以上をターゲットにしている場合、ActionBarActivityを拡張してAppCompatを参照する必要はありません。単にActivityを拡張するだけで、デフォルトでactionabrを使用できます。

Android Studioのデフォルトのプロジェクトでは、依存関係に自動的に含まれ、ActivityではなくActionbarActivityを拡張して使用します。

7
vanste25

ActionBarActivityまたはSupportActionBarActivityには、一般的なActivityにはない追加のメソッドとプロパティがあります。たとえば、タブを追加するためのメソッドはActionBarActivityにあり、汎用のActivityにはありません。

主な違いは、汎用ActionBarActivityを取得しないことです。

4
danny117

Actionbaractivityにアクセスすると、Androidサポートライブラリを使用しています。サポートライブラリの使用は、アプリケーションがデバイスの最大数に対応できるようにすることです。サポートライブラリは、アプリケーションに後方互換性の力を与えます。 Actionbaractivityは、Actionbardrawerトグルなどの複数の機能を提供します。利用可能なサポートライブラリがさらにあります。このリンクを参照してください..そして友人と共有してください... https://developer.Android.com/tools/support-library/index.html

1
Noorul

ActionBarActivityには、より多くのサポートライブラリがあり、api 11から利用可能な新しいテーマの使用方法が改善されています。

「最も基本的なフォームでは、アクションバーにはアクティビティのタイトルと左側にアプリのアイコンが表示されます。このシンプルなフォームでも、アクションバーはすべてのアクティビティでユーザーに現在地を知らせ、一貫性を維持するのに役立ちますアプリのID。」

1