栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android教程学习日志(一)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android教程学习日志(一)

目录

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中声明。添加元素作为元素的子元素。此元素唯一的必要属性是 android:name,该属性用于指定 Activity 的类名称。也可添加其他属性。

示例:

     

         

     

   

声明intent过滤器

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

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

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

声明权限

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

首先子Activity:

   

   

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

    />

父Activity:

   

       

   

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");
   }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/306083.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号