安卓市场-框架搭建

在我们学习完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市场开发之路。

版权声明:您好,转载请留下本人博客的地址,谢谢

时间: 2024-11-02 23:29:12

安卓市场-框架搭建的相关文章

安卓市场--框架搭建3

在我们的上一篇博客中,最基本的框架已经搭建完成了,那我们为什么这篇文章还叫做框架搭建呢?原因就是之前我们搭建的是贯穿这个项目,要对这个项目的声明周期进行管理的框架,而后面我们需要做的是搭建一个我们需要的与内容有关的框架. 下面我们先来看一下我们这个框架最终的效果: 在这个框架中,我们需要做的有下面几个工作: 1:添加一个TabHost,tab分别是首页,分类,排行,推荐和主题 2:首页上方有一个用户按钮,搜索框和二维码扫描按钮 3:添加侧滑栏 4:点击各个按钮之后都能进入相应的界面 下面我们一个

安卓市场--框架搭建5

在上一篇中,我们已经把框架搭建的差不多了,只剩下最后一个需要的功能框架,就是右滑栏.对于右滑栏的使用,我们使用在github上比较火热的SlidingMenu来创建我们需要的侧滑栏. 首先我们需要为我们的侧滑栏创建一个布局文件,在res/layout文件夹下面创建一个activity_left_layout.xml文件,并选择RelativeLayout布局. 在我们的侧滑栏中肯定放一些选项,那么我们就是用ListView进行布局,下面看一下代码: <?xml version="1.0&q

安卓市场--框架搭建2

在上一篇中,我们回想了android的activity的生命周期以及Application的基本知识.在这一篇中,我们正式開始我们的项目之旅. 在我们进行项目开发的时候,首先须要做的就是搭建一个项目框架.因为我也没有正式的去公司工作过,只就是依照自己的理解来搭建一个小型的项目框架,我们先来完毕第一步. 在我们的不论什么一个android程序中.都须要一个对activity进行管理的类,我们如今称作AppManager,既然该类是对activity进行管理的,我们就须要记录每个activity,依

安卓开发平台搭建

安卓开发平台搭建 安卓开发平台主要有Eclipse和Android studio两大平台,而Eclipse开发平台又有集成adt的adt bundle和模块式Eclipse,安卓开发平台搭建主要有以下三种方法,http://www.androiddevtools.cn/这个网站有很多相关开发工具提供下载. [方法一]:jdk+adt bundle,adt bundle最新版本是adt-bundle-windows-x86-20140702,里面是ADT23.0.2+andriod 4.4 api

Cocos2d-x项目的游戏框架搭建

本篇所用的Cocos2d-x版本为:Cocos2d-x 3.2 Cocos2d-x项目的游戏框架搭建 游戏与应用项目其实差别不是很大,甚至有许多地方都是一样的,无非侧重点不同,手机游戏更侧重于用户的体验,更加的娱乐化.情感化.让玩家感觉“爽”.而手机应用更侧重于简单.明了,优先完成业务为重. 在以Cocos2d-x引擎为基础上,其实我们要做的准备工作还是很多的: 一.分析项目 首先,我们要知道,我们这个游戏是什么样类型的游戏,游戏机制是什么,按照目前市场上来说可以分成如下类型与机制: 1. 游戏

匀加速商城系统开发模式底层框架搭建

.net框架下的B/S软件开发被广泛应用的原因在于此技术为轻量级,能够跨系统进行操作,能够捕捉动态数据及绚丽的UI设计等软件开发模式,拥有高效率的开发,容易上手.当然,也存在对服务端硬件要求较高的弊端,但不可否认的是,.net框架下B/S软件开发技术能够进一步推动世界科技的向前发展.  1 .net框架下B/S技术  1.1 WebForm  WebForm是一套完善的组建开发技术,其原理是结合用户所需的URL,找到与之相应的aspx和aspx.cs:然后将html标签和服务端标签runat=s

Spring MVC 框架搭建及详解

一.Spring MVC环境搭建:(Spring 2.5.6 + Hibernate 3.2.0) 1. jar包引入 Spring 2.5.6:spring.jar.spring-webmvc.jar.commons-logging.jar.cglib-nodep-2.1_3.jar Hibernate 3.6.8:hibernate3.jar.hibernate-jpa-2.0-api-1.0.1.Final.jar.antlr-2.7.6.jar.commons-collections-3

spring-websocket框架搭建遇到的问题解决方案汇总

问题1 org.apache.tomcat.websocket.server.WsServerContainer cannot be cast to javax.websocket.server 严重: Servlet.service() for servlet [SpringMVC] in context with path [/ZHDM] threw exception [Request processing failed; nested exception is org.springfra

[CI] 使用CodeIgniter框架搭建RESTful API服务

在2011年8月的时候,我写了一篇博客<使用CodeIgniter框架搭建RESTful API服务>,介绍了RESTful的设计概念,以及使用CodeIgniter框架实现RESTful API的方法.转眼两年过去了,REST在这两年里有了很大的改进.我对于前一篇博客中的某些方面不是很满意,所以希望能利用这次机会写一个更加完善的版本.我的项目基于Phil Sturgeon的CodeIgniter REST Server,遵循他自己的DBAD协议.Phil的这个项目很棒,干净利落,简单实用,并