Android基础——四大组件之Activity
2016-05-12 23:46
555 查看
这几天会优先整理出四大组件的部分,之后再写其他的。先从Activity开始
先扯点别的
推荐一个火狐浏览器,用来看AndroidAPI文档,开发必备。
首先,API文档在SDK里:D:\SDK\docs\index.html
用火狐浏览器打开,火狐浏览器设置为脱机工作,这样就能够在里面搜索你想要的API了:
点击第一条,android.app.Activity,查看其API
其实从这里也能看出Android的一些框架,除去Java部分,android的根类可以说是Context类,上下文属性这里也单独介绍一下,之后经常用到,却并不明白他存在的意义。参考至:【qingjuning的博客】
结构图
更具体的请转到链接【qingjuning的博客】
说一点我自己的理解:其实在javaweb的开发中更多的使用到了这个Context,作为一个体系的基类,他在Android中的功能体现并不明显,但在使用了之后也能理解,他在使用时,是携带了其代表的对象的信息的。通过他也能获取其对应的子类对象的内容属性等,作为一个父类引用子类对象的应用场景。
这里我们先引用API里的一张图:
Activity生命周期:在Xmind里也已经概述了他的三种状态以及7个阶段,为了加深理解先来段代码压压惊:
这里直接新创建一个module,在MainActivity里覆写这些方法,也就是Activity的各个阶段,运行之。。
开启应用时:
Activity被创建,开启,继续执行。。进入running状态
点击home键
点击Home键并未执行onDestroy方法,而是只执行停止而后进入Stopped状态。
重新点击应用进入界面
当重新点击应用进入时,原本并未被销毁的应用将被唤醒执行onRestart方法,再调用到onStart方法,再执行onResume进入running状态
点击back
而点击back键不同,将会先停止之后执行onDestroy方法。
这就是Activity整个的生命周期,只要记住这7个方法,以及他们对应的执行顺序与状态即可。
Activity的跳转方式
隐式跳转
创建新module,并创建一个SecondActivity的类以及他的布局文件AndroidManifest.xml:
SecondActivity:
MainActivity:
在activity_main里绑定跳转按键事件:
首先添加一个SecondActivity类,创建Activity清单文件注册该页面activity并且为其绑定事件,以及添加Default信息,然后为MainActivity添加跳转所需的按键,并为这个按键绑定隐式跳转的点击事件,在MainActivity实现这个事件,事件内创建Intent意图,为意图添加Action,这个事件必须与清单文件中注册的名字相同,才能在跳转时进行事件匹配然后找到目标跳转。
这里跳转的是本应用内的新Activity,而隐式跳转能够跳转其他应用以及系统应用等,只要注册事件,并添加这个事件即可。
显示跳转
依旧在本应用内进行,先创建一个ThirdActivity类:
然后是清单文件:
MainActivity:
activity_main也同样绑定一个按键,以及按键事件Explicit,显式跳转不需要添加事件,而是直接在Intent意图中添加对应的class文件直接指向那个activity,但这样的跳转至局限在本应用内,无法跳转至外部应用。
至于最后一个启动方式的部分,Xmind的概括已经足够了,在这之前只需要了解过栈内存的童鞋应该没有问题,很容易理解的内容。
Activity内容偏多点,写的有点慢,最近会继续挑几天把四大组件都整理出来。
未完待续。。。。
Activity
Xmind先扯点别的
推荐一个火狐浏览器,用来看AndroidAPI文档,开发必备。
首先,API文档在SDK里:D:\SDK\docs\index.html
用火狐浏览器打开,火狐浏览器设置为脱机工作,这样就能够在里面搜索你想要的API了:
点击第一条,android.app.Activity,查看其API
其实从这里也能看出Android的一些框架,除去Java部分,android的根类可以说是Context类,上下文属性这里也单独介绍一下,之后经常用到,却并不明白他存在的意义。参考至:【qingjuning的博客】
结构图
更具体的请转到链接【qingjuning的博客】
说一点我自己的理解:其实在javaweb的开发中更多的使用到了这个Context,作为一个体系的基类,他在Android中的功能体现并不明显,但在使用了之后也能理解,他在使用时,是携带了其代表的对象的信息的。通过他也能获取其对应的子类对象的内容属性等,作为一个父类引用子类对象的应用场景。
这里我们先引用API里的一张图:
Activity生命周期:在Xmind里也已经概述了他的三种状态以及7个阶段,为了加深理解先来段代码压压惊:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.d("tag","onCreate"); } @Override protected void onStart() { super.onStart(); Log.d("tag","onStart"); } @Override protected void onResume() { super.onResume(); Log.d("tag","onResume"); } @Override protected void onPause() { super.onPause(); Log.d("tag","onPause"); } @Override protected void onStop() { super.onStop(); Log.d("tag","onStop"); } @Override protected void onDestroy() { super.onDestroy(); Log.d("tag","onDestroy"); } @Override protected void onRestart() { super.onRestart(); Log.d("tag","onRestart"); }
这里直接新创建一个module,在MainActivity里覆写这些方法,也就是Activity的各个阶段,运行之。。
开启应用时:
Activity被创建,开启,继续执行。。进入running状态
点击home键
点击Home键并未执行onDestroy方法,而是只执行停止而后进入Stopped状态。
重新点击应用进入界面
当重新点击应用进入时,原本并未被销毁的应用将被唤醒执行onRestart方法,再调用到onStart方法,再执行onResume进入running状态
点击back
而点击back键不同,将会先停止之后执行onDestroy方法。
这就是Activity整个的生命周期,只要记住这7个方法,以及他们对应的执行顺序与状态即可。
Activity的跳转方式
隐式跳转
创建新module,并创建一个SecondActivity的类以及他的布局文件AndroidManifest.xml:
<activity android:name=".SecondActivity"> <intent-filter> <action android:name="SecondActivity"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity>
SecondActivity:
public class SecondActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Toast.makeText(this, "这是SecondActivity", Toast.LENGTH_SHORT).show(); } }
MainActivity:
public void Implicit(View view){ Intent intent = new Intent(); intent.setAction("SecondActivity"); startActivity(intent); }
在activity_main里绑定跳转按键事件:
<Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="Implicit" android:text="second" />
首先添加一个SecondActivity类,创建Activity清单文件注册该页面activity并且为其绑定事件,以及添加Default信息,然后为MainActivity添加跳转所需的按键,并为这个按键绑定隐式跳转的点击事件,在MainActivity实现这个事件,事件内创建Intent意图,为意图添加Action,这个事件必须与清单文件中注册的名字相同,才能在跳转时进行事件匹配然后找到目标跳转。
这里跳转的是本应用内的新Activity,而隐式跳转能够跳转其他应用以及系统应用等,只要注册事件,并添加这个事件即可。
显示跳转
依旧在本应用内进行,先创建一个ThirdActivity类:
public class ThirdActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Toast.makeText(this, "这是ThirdActivity", Toast.LENGTH_SHORT).show(); } }
然后是清单文件:
<activity android:name=".ThirdActivity"/>
MainActivity:
public void Explicit(View view){ Intent intent = new Intent(); intent.setClass(this,ThirdActivity.class); startActivity(intent); }
activity_main也同样绑定一个按键,以及按键事件Explicit,显式跳转不需要添加事件,而是直接在Intent意图中添加对应的class文件直接指向那个activity,但这样的跳转至局限在本应用内,无法跳转至外部应用。
至于最后一个启动方式的部分,Xmind的概括已经足够了,在这之前只需要了解过栈内存的童鞋应该没有问题,很容易理解的内容。
Activity内容偏多点,写的有点慢,最近会继续挑几天把四大组件都整理出来。
未完待续。。。。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories