Android之碎片生命周期

Android之碎片周期

碎片在其生命周期内会经历以下几种状态:

  • 运行状态:当一个碎片是可见时,并且与它关联的活动正处于运行状态时,该碎片也会处于运行状态。
  • 暂停状态:当一个活动进入暂停(由于另一个未占满屏幕的活动被添加到了栈顶),与它相关联的可见的碎片就会进入暂停状态。
  • 停止状态:当一个活动进入停止状态,与它相关联的碎片也会进入停止状态。或者通过调用 FragmentTransaction 的 remove()、replace() 方法将碎片从活动中移除,但若在事务提交之前调用 addToBackStack() 方法,这时的碎片也会进入停止状态。总的来说,进入停止状态的碎片对用户来说是完全不可见的,有可能会被系统回收。
  • 销毁状态:碎片总是依附于活动而存在的,因此当活动被销毁时,与它相关联的碎片也会进入销毁状态。或者通过调用 FragmentTransaction 的 remove() 、replace() 方法把碎片从活动中移除,但在事务提交之前并没有调用 addToBackStack() 方法的情况下,碎片也会进入销毁状态。

Fragment 类中也提供了一系列的回调方法,用于覆盖碎片生命周期的每个环节。其中,活动中有的回调方法,碎片中几乎都有,除此之外,碎片还提供了一些附加的回调方法:

  • onAttach() - 当碎片和活动建立关联时。
  • onCreateView() - 为碎片创建视图(加载布局)时。
  • onActivityCreated() - 确保与碎片相关联的活动已经创建完毕。
  • onDestroyView() - 当与碎片关联的视图被移除时。
  • onDetach() - 当碎片和活动解除关联时。
public class RightFragment extends Fragment 
{
    public static final String TAG = "RightFragment";
    @Override
        public void onAttach(Activity activity) 
    {
        super.onAttach(activity);
        Log.d(TAG, "onAttach");
    }
 
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
    super.onCreate(savedInstanceState);
    Log.d(TAG, "onCreate");
    }
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) 
    {
        Log.d(TAG, "onCreateView");
        View view = inflater.inflate(R.layout.right_fragment, container, false);
        return view;
    }
  
    @Override
    public void onActivityCreated(Bundle savedInstanceState) 
    {
    super.onActivityCreated(savedInstanceState);
    Log.d(TAG, "onActivityCreated");
    }
 
    @Override
    public void onStart() 
    {
        super.onStart();
        Log.d(TAG, "onStart"); 
    }
 
    @Override
    public void onResume() 
    {
        super.onResume();
        Log.d(TAG, "onResume");
    }
 
    @Override
    public void onPause() 
    {
        super.onPause();
        Log.d(TAG, "onPause");
    }
 
    @Override
    public void onStop() 
    {
        super.onStop();
        Log.d(TAG, "onStop");
    }
 
    @Override
    public void onDestroyView() 
    {
        super.onDestroyView();
        Log.d(TAG, "onDestroyView");
    }
 
    @Override    
    public void onDestroy() 
    {
    super.onDestroy();
    Log.d(TAG, "onDestroy");
    }
 
    @Override
    public void onDetach() 
    {
        super.onDetach();
        Log.d(TAG, "onDetach");
    }
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android TV的生命周期与普通的Android应用有一些差异,主要是在用户界面交互方面有所区别。以下是Android TV的生命周期: 1. onCreate():当应用程序启动时,会调用onCreate()方法来创建Activity。在这个方法中,你可以进行一些初始化操作,例如设置布局、绑定数据等。 2. onStart():在onCreate()方法之后,会调用onStart()方法。在这个方法中,可以执行一些启动时的准备工作,例如注册广播接收器、初始化变量等。 3. onResume():当Activity从后台返回到前台时,会调用onResume()方法。在这个方法中,你可以进行一些UI更新、注册监听器等操作。 4. onPause():当Activity失去焦点、被其他Activity覆盖或进入后台时,会调用onPause()方法。在这个方法中,你可以保存一些临时数据、释放资源等。 5. onStop():当Activity完全不可见时,会调用onStop()方法。在这个方法中,你可以执行一些清理工作、取消注册等。 6. onDestroy():当Activity即将被销毁时,会调用onDestroy()方法。在这个方法中,可以执行一些最终的清理操作、释放资源等。 需要注意的是,Android TV应用程序的焦点管理和交互方式与手机应用有所不同。在TV应用中,焦点管理更加重要,并且需要处理遥控器的方向键、选择键等交互事件。 以上是Android TV应用程序的生命周期概述。具体的生命周期方法的实现会根据应用程序的需求而有所不同。希望能对你有所帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值