在我们学习完android的基础知识之后,肯定很想通过自己所学习的基础知识来构建一个自己的安卓项目,但是又不知道从何下手,我们这个专题就是为了学习完安卓的基础知识之后,来练手用的。
我们这款项目是通过编写一个我们经常用到的安卓市场来对知识的一个综合应用,该应用具体有以下功能:
- 1:有这么几个tab,首页,分类,推荐和主题
- 2:首页分为上中下三个部分,分别为搜索,推荐栏和app列表
- 3:分类使用格子效果展示类别,点击进入app列表展示
- 4:推荐是使用别人实现的一个推荐效果
- 5:主题分别显示图片和文字介绍,点击进入之后显示app列表
- 6:侧滑栏包含一些选项,包括设置,个人主页,检查更新以及下载管理等
- 7:实现多线程下载,可以进行暂停,取消等操作
- 8:其他功能
好了,废话少说,我们现在所要做的第一件事情就是先回顾一下android的基础知识。在我们以后的博客中,都会回顾一下与我们这篇进程相关的基础知识。
首先,我们知道安卓的四大组件分别为:
- 1:activity(活动)
- 2:service(服务)
- 3:Broadcast Receiver(广播)
- 4:Content Provider(内容提供者)
在这一篇博客中我们主要回忆的是android的第一个组件activity和android的Application。
我们知道,在我们进行android开发的时候,每一个activity都对应一个相应的界面,那么每一个activity都对应自己的生命周期,首先我们就来讨论一下activity的生命周期,所谓声明周期,就是activity从创建到销毁的过程。
我们看一下android的api中关于activity的声明周期的函数有以下几个:
@Override protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_main); Log.e("activity--->","create"); super.onCreate(savedInstanceState); } @Override protected void onStart() { Log.e("activity--->","start"); super.onStart(); } @Override protected void onRestart() { Log.e("activity--->","restart"); super.onRestart(); } @Override protected void onResume() { Log.e("activity--->","resume"); super.onResume(); } @Override protected void onPause() { Log.e("activity--->","pause"); super.onPause(); } @Override protected void onStop() { Log.e("activity--->","stop"); super.onStop(); } @Override protected void onDestroy() { Log.e("activity--->","destroy"); super.onDestroy(); }
1:首先我们看一下,当一个activity启动的时候,函数的调用顺序:
即onCreate()->onStart()->onResume()
2:当第一个activity启动另外一个activity的时候,两个activity分别调用什么函数呢?
我们来看一下:
即activity1 onPause()->activity2 onCreate() -> activity2 onStart() -> activity2 onResume() -> activity1 onStop()
3:当从第二个activity返回到第一个activity的时候,函数是如何调用的,我们来看一下:
即 activity2 onPause() -> activity1 onRestart() -> activity1 onStart() -> activity1 onResume() -> activity2 onStop() -> activity2 onDestroy()
4:当activity销毁的时候,会有哪几种情况呢?
第一种,按下返回键销毁activity:
activity onPause() -> activity onStop() -> activity onDestroy()
第二种:process kill的时候,也就是杀死进程的时候
activity onPause() -> Process kill
或者为 activity onPause() -> activity onStop() -> Process kill下面我们来具体说一下这几个函数:
在我们进行项目开发的时候,这些函数我们基本上都是从父类中继承而来。
1:onCreate():当activity第一次启动的时候,该方法触发,在该函数中基本上完成activity的初始化工作。该函数有一个参数,用来保存在函数OnSaveInstance()的时候,保存的状态。
2:onStart():该函数表示开始该activity,即将该activity展示给用户
3:onResume():当一个activity与用户发生交互的时候,该方法被触发
4:onPause():一个activity从前台运行转到后台运行的时候,该方法被触发
5:onStop():当一个activity不需要展示给用户的时候,触发该方法。但是有的时候,该函数不会被触发而activity就已经被销毁了,我们刚刚看到的,三种activity被销毁的方式,所以,如果想要保存activity的状态,可以在onPause()函数中设置。
6:onRestart():当停止状态的活动再次展现给用户的时候,该函数被调用
7:onDestroy():当activity被销毁的时候被触发,但是有的时候不会被触发而直接销毁。
还有就是,所有的activity都是在activity栈中被管理的,这里不再多说。
下面我们来说一说android程序中的Application。
我们会误以为在android程序运行的时候,会直接运行第一个activity,其实这是不对的,其实一个程序的运行,首先会运行application。其实一个android程序的运行首先运行的是Application的onCreate()函数,而不是第一个Activity的onCreate()函数,在一个android程序中可以没有activity,但是必须要有Application。
在Application中,经常会定义一些全局的变量供其他activity使用。有兴趣的同学可以了解一下Application的声明周期。
好了,在这一篇中,我们先回顾了一些一会我们将会要用到的基础知识,下面一篇博客将要正式开始我们的android市场开发之路。