FragmentActivity和Activity的具体区别在哪里

fragment是3.0以后的东西,为了在低版本中使用fragment就要用到android-support-v4.jar兼容包,而fragmentActivity就是这个兼容包里面的,它提供了操作fragment的一些方法,其功能跟3.0及以后的版本的Activity的功能一样。下面是API中的原话:FragmentActivity is a special activity provided in the Support Library to handle fragments on system versions older than API level 11. If the lowest system version you support is API level 11 or higher, then you can use a regular Activity.

1、fragmentactivity 继承自activity,用来解决android3.0 之前没有fragment的api,所以在使用的时候需要导入support包,同时继承fragmentActivity,这样在activity中就能嵌入fragment来实现你想要的布局效果。 2、当然3.0之后你就可以直接继承自Activity,并且在其中嵌入使用fragment了。 3、获得Manager的方式也不同 3.0以下:getSupportFragmentManager() 3.0以上:getFragmentManager() 

Fragment is a section of an Activity, which has:

  • its own lifecycle
  • receives its own input events
  • can be added or removed while the Activity is running.

Fragment must always be embedded in an Activity.

Fragments are not part of the API prior to HoneyComb (3.0). If you want to use Fragments in an app targeting a platform version prior to HoneyComb, you need to add the Support Package to your project and use the FragmentActivity to hold your Fragments. The FragmentActivity class has an API for dealing with Fragments, whereas the Activity class, prior to HoneyComb, doesn‘t.

If your project is targeting HoneyComb or newer only, you should use Activity and notFragmentActivity to hold your Fragments.

Some details:

Use android.app.Fragment with Activity. Use android.support.v4.app.Fragment withFragmentActivity. Don‘t add the support package Fragment to an Activity as it will cause an Exception to be thrown.

A thing to be careful with: FragmentManager and LoaderManager have separate support versions for FragmentActivity:

If you are using a Fragment in an Activity (HoneyComb and up), call

  • getFragmentManager() to get android.app.FragmentManager
  • getLoaderManager() to get android.app.LoaderManager

if you are using a Fragment in a FragmentActivity (pre-HoneyComb), call:

  • getSupportFragmentManager() to get android.support.v4.app.FragmentManager.
  • getSupportLoaderManager() to get android.support.v4.app.LoaderManager

so, dont do

myFragmentActivity.getLoaderManager()//don‘t do this, do myFragmentActivity.getSupportLoaderManager()

or

android.app.FragmentManager fm = myFragmentActivity.getSupportFragmentManager()//don‘t do this, do android.support.v4.app.FragmentManager fm = myFragmentActivity.getSupportFragmentManager()

Also useful to know is that while a fragment has to be embedded in an Activity it doesn‘t have to be part of the Activity layout. It can be used as an invisible worker for the activity, with no UI of its own.

http://www.cnblogs.com/wanqieddy/p/3818718.html
时间: 2024-10-13 21:57:17

FragmentActivity和Activity的具体区别在哪里的相关文章

Fragment(9)FragmentActivity和Activity的区别

getSupportFragmentManager()  ,FragmentActivity用在android sdk 3以下. getFragmentManager() + Activity 用在android sdk 3以上. stackoverflow的原文 A FragmentActivity is a subclass of Activity that was built for the Android Support Package. The FragmentActivity cla

FragmentActivity和Activity的区别

[转载] 直说总结了: 1.fragmentactivity 继承自activity,用来解决android3.0 之前没有fragment的api,所以在使用的时候需要导入support包,同时继承fragmentActivity,这样在activity中就能嵌入fragment来实现你想要的布局效果. 2.当然3.0之后你就可以直接继承自Activity,并且在其中嵌入使用fragment了. 3.获得Manager的方式也不同 3.0以下:getSupportFragmentManager

AppCompatActivity、ActionBarActivity、FragmentActivity和Activity的区别

package com.chy.myapplication; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; /* * support v4 FragmentActivity 兼容2.x模式下使用Fragment * support v7 AppCompatActivity 兼容2.x模式下使用Fragment和ActionBar,ActionBarActivity是AppCompatActiv

(转)Fragment、FragmentActivity与Activity的关系

总结: 1.FragmentActivity继承自Activity,用来解决3.0(API:11)之前没有fragment的兼容性问题,所以在使用的时候需要导入v4 support包,同时继承FragmentActivity,这样在Activity中就能嵌入Fragment来实现布局效果 2.当然3.0之后就可以直接继承自Activity,直接使用Fragment 3.获得FragmentManager的写法是不同的.3.0以下:getSupportFragmentManager()  ,3.0

【安卓面试题】在一个Activity启动另一个Activity和在Service中启动一个Activity有什么区别

在Activity中可以直接使用Intent启动另一个Activity 显式Intent intent = new Intent(context, activity.class) 隐式 Intent intent = new Intent(“com.aa.www.act”); startActivity(intent); 如果从Service中用同样方法启动Activity 的话,会报错: android.util.AndroidRuntimeException: Calling startAc

Service的生命周期与Activity生命周期区别

组件的生命周期 应用程序组件都有一个生命周期,从响应Intent的Android实例开始到这个实例被销毁.在这期间,他们或许有效或许无效,有效时或许对用户可见或许不可见.下面我们就来讨论四个基本组件的生命周期,包括在生命周期内的各种状态,以及状态之间的转换.这几种状态可能的结果是:进程让他们停止, 然后实例被销毁.  一.activity生命周期     一个activity有三个基本的状态:  @ 当activity在前台运行时(在activity当前任务的堆栈顶),为活动或者运行状态.这时a

activity启动模式区别和优化

初学android的开发人员,可能会经常忽略这个重要的设置. Activity一共有以下四种launchMode:1.standard2.singleTop3.singleTask4.singleInstance我们可以在AndroidManifest.xml配置<activity>的android:launchMode属性为以上四种之一即可. 总结说明: 0 standard ----标准,每次打开同一个activtiy页面都会在堆栈创新新的实例,默认就是这个 1 singleTop ---

Fragment的startActivityForResult和Activity的startActivityForResult的区别

2016-08-30 18:22:33 前提:我们的APP要兼容Api level 11以前的,所以必须用FragmentActivity 1.对于Fragment的,我们很多时候都会在Activity中通过如下方式使用: Fragment是Android3.0以后才引入的东西,为了向下兼容,在support v4包中加入了FragmentActivity,FragmentActivity和Activity的区别是:FragmentActivity中只能使用getSupportFragmentM

Activity 的 36 大难点,你会几个

前言 学 Android 有一段时间了,一直都只顾着学新的东西,最近发现很多平常用的少的东西竟让都忘了,趁着这两天,打算把有关 Activity 的内容以问题的形式梳理出来,也供大家查缺补漏. 本文中,我将一改往日写博客的习惯,全文用 XMind 将所有知识点以思维导图的形式呈现,欢迎大家食用-- # 文章目录 方便大家学习,我在 GitHub 上建立个 仓库 仓库内容与博客同步更新.由于我在 稀土掘金 简书 CSDN 博客园 等站点,都有新内容发布.所以大家可以直接关注该仓库,以免错过精彩内容