目录

Android概述

Android操作系统的框架

Android Studio目录详解

Android应用程序组件

Activity(与用户交互的入口点。它表示拥有界面的单个屏幕)

Activity简介

声明Activity

声明intent过滤器

声明权限

Activity生命周期概念

OnCreate()

OnStart()

OnResume()

OnPause()

OnStop()

OnDestroy()


Android概述

Android 是一个开源的,基于 Linux 的移动设备操作系统,由谷歌及其他公司带领的开放手机联盟开发的。

Android 应用程序一般使用 Android 软件开发工具包(SDK),采用 Java 语言来开发。

一旦开发完成,Android 应用程序可以容易的打包。

Android操作系统的框架

Android Studio目录详解

(注:项目要选择Project,若选择其他选项则无法正确显示目录)

Android应用程序组件

Activity(与用户交互的入口点。它表示拥有界面的单个屏幕)

Activity简介

移动应用体验与桌面体验的不同之处在于,用户与应用的互动并不总是在同一位置开始,而是经常以不确定的方式开始。例如你通过社交媒体应用启动电子邮件应用,可能会直接进入电子邮件应用的邮件撰写界面。

Activity类的目的就是为了实现当一个应用调用另一个应用时,调用方应用会调用另一个应用中的 Activity,而不是整个应用。通过这种方式,Activity 充当了应用与用户互动的入口点。

Activity提供窗口供应用在其中绘制页面,一个Activity实现应用中的一个屏幕。大多数应用包含多个屏幕,这意味着他们包含多个Activity。通常,应用中的一个 Activity 会被指定为主 Activity,这是用户启动应用时出现的第一个屏幕。然后,每个 Activity 可以启动另一个 Activity,以执行不同的操作。要在应用中使用 Activity,您必须在应用的清单中注册关于 Activity 的信息,并且必须适当地管理 Activity 的生命周期。

声明Activity

在AS中的AndroidMainfest.xml中声明。添加<activity>元素作为<application>元素的子元素。此元素唯一的必要属性是 android:name,该属性用于指定 Activity 的类名称。也可添加其他属性。

示例:

<manifest ... >

<application ... >

<activity android:name=".ExampleActivity" />

</application ... >

</manifest >

声明intent过滤器

借助intent过滤器,您不但可以根据显式请求启动 Activity,还可以根据隐式请求启动 Activity。例如,显式请求可能会告诉系统“在 Gmail 应用中启动‘发送电子邮件’Activity”,而隐式请求可能会告诉系统“在任何能够完成此工作的 Activity 中启动‘发送电子邮件’屏幕”。当系统界面询问用户使用哪个应用来执行任务时,这就是 intent 过滤器在起作用。

示例:(展示如何配置一个发送文本数据并接收其他 Activity 的文本数据发送请求的 Activity)

如果您打算构建一个独立的应用,不允许其他应用激活其 Activity,则不需要任何其他 intent 过滤器。

声明权限

您可以使用清单的 <activity>标记来控制哪些应用可以启动某个 Activity。父 Activity 和子 Activity 必须在其清单中具有相同的权限,前者才能启动后者。

首先子Activity:

<manifest>

<activity android:name="...."

android:permission=”com.google.socialapp.permission.SHARE_POST”

/>

父Activity:

<manifest>

<uses-permission android:name="com.google.socialapp.permission.SHARE_POST" />

</manifest>

Activity生命周期概念

Activity 生命周期的简化图示

OnCreate()

必须实现此回调,它会在系统首次创建Activity时触发。Activity会在创建后进入"已创建"状态。onCreate()方法在Activity的整个生命周期中只应发生一次。

简单示例代码:

public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      Log.d(msg, "The onCreate() event");
   }

OnStart()

当Activity进入"已开始"状态时,系统会调用此回调。onStart()调用使Activity对用户可见,因为应用会为Activity进入前台并支持互动做准备。

当 Activity 进入已开始状态时,与 Activity 生命周期相关联的所有生命周期感知型组件都将收到ON_START事件。

onStart()方法会非常快速地完成,并且与“已创建”状态一样,Activity 不会一直处于“已开始”状态。一旦此回调结束,Activity 便会进入“已恢复”状态,系统将调用onResume()方法。

简单示例代码:

protected void onStart() {
      super.onStart();
      Log.d(msg, "The onStart() event");
   }

OnResume()

当Activity进入"已恢复"状态时来到前台,系统会调用此回调。

当 Activity 进入已恢复状态时,与 Activity 生命周期相关联的所有生命周期感知型组件都将收到ON_RESUME事件。

当发生中断事件时,Activity 进入“已暂停”状态,系统调用 onPause()回调。

如果 Activity 从“已暂停”状态返回“已恢复”状态,系统将再次调用 onResume()方法。因此,您应实现 onResume(),以初始化在onPause()期间释放的组件,并执行每次 Activity 进入“已恢复”状态时必须完成的任何其他初始化操作。

简单示例代码:

protected void onResume() {
      super.onResume();
      Log.d(msg, "The onResume() event");
   }

OnPause()

系统将此方法视为用户将要离开您的 Activity 的第一个标志,

使用 onPause()方法暂停或调整当Activity处于“已暂停”状态时不应继续(或应有节制地继续)的操作,以及您希望很快恢复的操作。

当 Activity 进入已暂停状态时,与 Activity 生命周期相关联的所有生命周期感知型组件都将收到 ON_PAUSE事件。

简单示例代码:

protected void onPause() {
      super.onPause();
      Log.d(msg, "The onPause() event");
   }

OnStop()

如果您的 Activity 不再对用户可见,说明其已进入“已停止”状态,因此系统将调用 onStop()回调。

当 Activity 进入已停止状态时,与 Activity 生命周期相关联的所有生命周期感知型组件都将收到 ON_STOP事件。这时,生命周期组件可以停止在组件未显示在屏幕上时无需运行的任何功能。

在 onStop()方法中,应用应释放或调整在应用对用户不可见时的无用资源。使用 onStop()而非 onPause()可确保与界面相关的工作继续进行,即使用户在多窗口模式下查看您的 Activity 也能如此。

当您的 Activity 进入“已停止”状态时,Activity对象会继续驻留在内存中:该对象将维护所有状态和成员信息,但不会附加到窗口管理器。Activity 恢复后,Activity 会重新调用这些信息。

简单示例代码:

protected void onStop() {
      super.onStop();
      Log.d(msg, "The onStop() event");
   }

OnDestroy()

销毁 Activity 之前,系统会先调用 onDestroy()。

当 Activity 进入已销毁状态时,与 Activity 生命周期相关联的所有生命周期感知型组件都将收到 ON_DESTORY事件。这时,生命周期组件可以在Activity 被销毁之前清理所需的任何数据。

简单示例代码:

public void onDestroy() {
      super.onDestroy();
      Log.d(msg, "The onDestroy() event");
   }

Android教程学习日志(一)相关推荐

  1. .NetCore微服务Surging新手傻瓜式 入门教程 学习日志---结构简介(二)

    .NetCore微服务Surging新手傻瓜式 入门教程 学习日志---结构简介(二) 原文:.NetCore微服务Surging新手傻瓜式 入门教程 学习日志---结构简介(二) 先上项目解决方案图 ...

  2. 安卓app软件开发教程!免费Android高级工程师学习资源,值得收藏!

    写在前面 记得我大二时"不务正业"地自学Android并跟了老师做项目,到大三开始在目前的公司实习,至今毕业已有几年多,学习Android已经6.7年多了!但总感觉知识点很零散,并 ...

  3. 史上最全的Android开发学习教程集锦【初学者】

    根据Google的报告,截止2017年5月为止,Android活跃用户已超过20亿,并还在持续增长中.Android系统在几个主要的市场上已超过了iOS系统,特别是在美国,欧洲和日本,然而苹果确实在中 ...

  4. Unreal4引擎开发学习日志

    Unreal4引擎开发学习笔记1 相关说明 本游戏引擎学习日志是笔者根据网上相关教学视频所写,是对视频内容的精炼与总结.如果您认为笔者所写不清晰明确,可以访问以下链接: Unreal入门第一季 - 虚 ...

  5. SFML学习日志 Day1

    SFML学习日志 Day1 什么是SFML? SFML 是多媒体,SFML 为 PC 的各个组件提供了一个简单的界面,便于游戏和多媒体应用程序的发展.它由五个模块组成:系统.窗口.图形.音频和网络. ...

  6. java/android 设计模式学习笔记(1)--- 单例模式

    前段时间公司一些同事在讨论单例模式(我是最渣的一个,都插不上嘴 T__T ),这个模式使用的频率很高,也可能是很多人最熟悉的设计模式,当然单例模式也算是最简单的设计模式之一吧,简单归简单,但是在实际使 ...

  7. android edittext输入邮箱,[Android教程]EditText怎样限制用户的输入?数字/字母/邮箱

    有输入必有验证.为了防止用户随便输入确保提交数据的合法性,程序不得不在文本输入框(EditText)中增加限制或验证. 关于输入类型有数字.字母.邮箱.电话等形式,这些具体得根据业务来.那么Andro ...

  8. android 输入过滤,Android Studio添加日志过滤方式

    1.点击下方的 Android Monitor 2.点击右侧的选项菜单 3.点击菜单下拉列表中的 Edit Filter Configuration,打开配置界面 4.配置界面说明 第1部分是为这个过 ...

  9. Android FrameWork学习(二)Android系统源码调试

    点击打开链接 通过上一篇 Android FrameWork学习(一)Android 7.0系统源码下载\编译 我们了解了如何进行系统源码的下载和编译工作. 为了更进一步地学习跟研究 Android ...

最新文章

  1. 电脑记事本_办公便签记事本
  2. SEM那些被人混淆的事儿(已完结)
  3. QT操作sqlite概念
  4. c++的STL--1概念通述
  5. “约见”面试官系列之常见面试题之第八十四篇之手写promise(建议收藏)
  6. 网管分析数据包? 组合一下吧。
  7. 文章用图的修改和排版(2)
  8. 随想录(c语言的优缺点)
  9. 正则表达式的贪婪与非贪婪模式
  10. 中职计算机办公自动化教学,中职学校计算机办公自动化教学现状分析.pdf
  11. Fredholm第二类积分方程的MATLAB代码实现(1)
  12. GaussDB系列数据库简介
  13. springboot悠悠转二手网站毕业设计源码181134
  14. 杰瑞·卡普兰:人工智能并不可怕 未来将带来两大影响
  15. Duplicate entry 'dage' for key 'PRIMARY'
  16. 中国电子竞技产业研究报告
  17. [高数][高昆轮][高等数学上][第一章-函数与极限]09.连续函数的运算和函数的连续性...
  18. mysql查询专业术语,英语术语MySQL查询
  19. 《每日一套题·提升你我能力》· 第五篇
  20. C语言贪吃蛇游戏代码,贪吃蛇C语言代码实现大全

热门文章

  1. 【每日早报】20200116
  2. 渲染管线流程【图示】
  3. ROS-Control专题:PR2的六个概念【6】
  4. UPC——训练赛 :卡片
  5. mem_a.scf的那些事
  6. [海豹海边爆]Daimayuan554
  7. UVa 10557 - XYZZY
  8. CSharp再爱我一次,你真的懂泛型吗?
  9. 不要在我寂寞的时候说爱我
  10. 越客连锁会员管理系统-会员管理轻松搞定