安卓开发_深入理解Activity和Fragment的关系
时间:2022-05-16
本文章向大家介绍安卓开发_深入理解Activity和Fragment的关系,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Fragment(碎片)是必须嵌入在 Activity(活动) 中使用的。Fragment的生命周期随着Activity的生命周期的变化而变化
一、首先让我们看下Activity和Fragment的生命周期对比
二、通过代码来看一下
1 package com.xqx_life;
2
3 import android.os.Bundle;
4 import android.app.Activity;
5 import android.app.FragmentManager;
6 import android.app.FragmentTransaction;
7 import android.view.Menu;
8
9 public class MainActivity extends Activity {
10
11
12 @Override
13 protected void onCreate(Bundle savedInstanceState) {
14 super.onCreate(savedInstanceState);
15 setContentView(R.layout.activity_main);
16 MyFragment fragment = new MyFragment();
17 FragmentManager manager = getFragmentManager();
18 FragmentTransaction action = manager.beginTransaction();
19 action.add(R.id.show_fragment,fragment );
20 action.commit();
21
22 System.out.println("现在执行Activity的 onCreate()方法");
23 }
24
25 @Override
26 protected void onStart() {
27 // TODO Auto-generated method stub
28 super.onStart();
29 System.out.println("现在执行Activity的 onStart()方法");
30 }
31
32 @Override
33 protected void onResume() {
34 // TODO Auto-generated method stub
35 super.onResume();
36 System.out.println("现在执行Activity的 onResume()方法");
37 }
38
39 @Override
40 protected void onRestart() {
41 // TODO Auto-generated method stub
42 super.onRestart();
43 System.out.println("现在执行Activity的 onRestart()方法");
44 }
45
46 @Override
47 protected void onPause() {
48 // TODO Auto-generated method stub
49 super.onPause();
50 System.out.println("现在执行Activity的 onPause()方法");
51 }
52
53 @Override
54 protected void onStop() {
55 // TODO Auto-generated method stub
56 super.onStop();
57 System.out.println("现在执行Activity的 onStop()方法");
58 }
59
60 @Override
61 protected void onDestroy() {
62 // TODO Auto-generated method stub
63 super.onDestroy();
64 System.out.println("现在执行Activity的 onDestroy()方法");
65 }
66
67
68
69 }
1 package com.xqx_life;
2
3 import android.app.Activity;
4 import android.app.Fragment;
5 import android.os.Bundle;
6 import android.view.LayoutInflater;
7 import android.view.View;
8 import android.view.ViewGroup;
9
10 public class MyFragment extends Fragment{
11 @Override
12 public View onCreateView(LayoutInflater inflater, ViewGroup container,
13 Bundle savedInstanceState) {
14 // TODO Auto-generated method stub
15 System.out.println("现在执行Fragment的 onCreateView()方法");
16 View view = inflater.inflate(R.layout.layout_fragment, container, false);
17 return view;
18 }
19
20 @Override
21 public void onAttach(Activity activity) {
22 // TODO Auto-generated method stub
23 System.out.println("现在执行Fragment的 onAttach()方法");
24 super.onAttach(activity);
25 }
26
27 @Override
28 public void onCreate(Bundle savedInstanceState) {
29 // TODO Auto-generated method stub
30 System.out.println("现在执行Fragment的 onCreate()方法");
31 super.onCreate(savedInstanceState);
32 }
33
34 @Override
35 public void onActivityCreated(Bundle savedInstanceState) {
36 // TODO Auto-generated method stub
37 System.out.println("现在执行Fragment的 onActivityCreated()方法");
38 super.onActivityCreated(savedInstanceState);
39 }
40
41 @Override
42 public void onStart() {
43 // TODO Auto-generated method stub
44 System.out.println("现在执行Fragment的 onStart()方法");
45 super.onStart();
46 }
47
48 @Override
49 public void onResume() {
50 // TODO Auto-generated method stub
51 System.out.println("现在执行Fragment的 onResume()方法");
52 super.onResume();
53 }
54
55 @Override
56 public void onPause() {
57 // TODO Auto-generated method stub
58 System.out.println("现在执行Fragment的 onPause()方法");
59 super.onPause();
60 }
61
62 @Override
63 public void onStop() {
64 // TODO Auto-generated method stub
65 System.out.println("现在执行Fragment的 onStop()方法");
66 super.onStop();
67 }
68
69 @Override
70 public void onDestroyView() {
71 // TODO Auto-generated method stub
72 System.out.println("现在执行Fragment的 onDestroyView()方法");
73 super.onDestroyView();
74 }
75
76 @Override
77 public void onDestroy() {
78 // TODO Auto-generated method stub
79 System.out.println("现在执行Fragment的 onDestroy()方法");
80 super.onDestroy();
81
82 }
83
84 @Override
85 public void onDetach() {
86 // TODO Auto-generated method stub
87 System.out.println("现在执行Fragment的 onDetach()方法");
88 super.onDetach();
89 }
90
91
92
93 }
1 <?xml version="1.0" encoding="utf-8"?>
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 android:orientation="vertical" >
6
7
8 </LinearLayout>
注意清单文件最低SDK版本要设置为11
1 <uses-sdk
2 android:minSdkVersion="11"
3 android:targetSdkVersion="21" />
看一下效果:
启动activity之后的生命
关闭activity 结束之前的生命
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- laravel-admin 实现给grid的列添加行数序号的方法
- Laravel 自动生成验证的实例讲解:login / logout
- 关于Laravel-admin的基础用法总结和自定义model详解
- 解决Laravel5.2 Auth认证退出失效的问题
- php输出文字乱码的解决方法
- laravel-admin表单提交隐藏一些数据,回调时获取数据的方法
- laravel 5.3 单用户登录简单实现方法
- Thinkphp5.0 框架的请求方式与响应方式分析
- Yii框架视图、视图布局、视图数据块操作示例
- 用php定义一个数组最简单的方法
- laravel-admin自动生成模块,及相关基础配置方法
- laravel-admin select框默认选中的方法
- Laravel-admin之修改操作日志的方法
- php使用curl伪造浏览器访问操作示例
- 关于laravel后台模板laravel-admin select框的使用详解