zoukankan      html  css  js  c++  java
  • Android开发之 Android 的基本组件的概述

    Android是一个为组件化而搭建的平台,它的应用是由一些零散的有联系的组件组成,并通过AndroidManifest.xml文件 把它们绑定起来。

    Android常用的组件有: Activity(活动)  , Service (服务),Broadcast Receiver(广播接收器) ,Intent (意图),Content Provide (内容提供器)和Notification(通知) 。

    一、 Activity 

    1. Activity 介绍 

    Activity是最常用的组件,实现应用程序的用户界面显示。

    应用程序可以定义一个或多个Activity。

    Activity的显示内容由View对象提供。

    每个视图(视图组)对象都有它们自己的多种xml属性。

    每个视图(视图组)对象都有一个ID属性。

    2、Activity 实例

    例:在HelloWorld 的activity_main.xml中的 TextView对象:

      <!-- 添加了一个textView 控件,其显示的内容是 string.xml 文件定义的内容   -->
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/hello_world" />

    3、ID定义的方式 

    ID属性有时被定义为字符串,编译后为整型值。可以查看R.java文件。


    ID的定义:

    方式一、 
    Android:id=“@+id/my_button1”

    “@”告诉xml解析器,解析并展开id后的其余部分作为ID资源。
    @后使用“+”表示定义一个新资源。

    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/textView1"
            android:layout_below="@+id/textView1"
            android:layout_marginTop="34dp"
            android:text="@+id/testword" />

    方式二、

    Android:id=“@android:id/my_button1”

    @后不使用“+”表示引用Android的一个资源。
    此时要加上Android包名字空间,通过它可以从android.R资源类中引用ID。

    <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/hello_world" />

    4. 启动Activity方式

    在onCreate()方法内调用setContentView()方法,用来指定将要启动的res/layout目录下的布局文件,例如

    第一种:setContentView(R.layout.main)。
    第二种方法是调用startActivity(),用于启动一个新的Activity。
    第三种方法是调用startActivityforResult(),用于启动一个Activity,并在该Activity结束时会返回信息。

    5. 关闭Activity方式

    通常调用finish()方法来关闭一个Activity。
    调用setResult()方法,则可以返回数据给上一级的Activity。
    使用startActivityforResult()启动的Activity时,则需要调用finishActivity()方法,来关闭其父Activity。

    二 、Service

    1. Service简介


    没有用户界面显示。
    具有较长的生命周期。
    常用于播放背景音乐的应用设计。
    一般由Activity启动,但不依赖于Activity 。


    2. 启动(结束)方式

    startService方法:启动,会依次调用onCreate和onStart方法;
    stopService方法:结束,会调用onDestroy方法。

    bindService方法:启动,会依次调用onCreate和onBind方法;
    unbindService方法:结束,会依次调用onUnbind和onDestroy方法。

    三、 BroadcastReceiver

    1.作用:接收广播消息,并做相应处理。

    2.使用过程:

    将需要广播的消息封装到Intent中。

    然后通三种发送方法中的一种将Intent广播出去 。
    通过IntentFilter对象来过滤所发送的实体Intent。
    实现一个重写了onReceive方法的BroadcastReceiver。

    3.注册方式

    在AndroidManifest.xml中,放在<receiver> </receiver>中,通过<intent-filter>设置过滤条件。
    在java代码中,先创建IntentFilter对象,在IntentFilter对象内设置Intent过滤条件。

    四、Intent

    1. Intent简介 

    是一种运行时的绑定机制,运行时连接两个不同的组件。
    Activity、Service、BroadcastReceiver之间的通信由Intent协助完成。
    不同类型的组件有不同的 Intent传送方法。

    2. Intent组成:组件名称, Action, Data,Category等。

    3. Intent过滤器(IntentFilter )

    当Intent没有指定组件名(隐性)时,使用IntentFilter 来找与Intent最合适的组件。
    工作机制:通过Intent向Android发出请求,然后查询各组件声明的IntentFilter,找到需要的组件并运行它。
    用<Intent-filter>标签声明指定组件支持的 Intent值。
    IntentFilter可以设置多个过滤值(即元素值)。

    五 、ContentProvider


    实现应用程序之间数据共享的类。

    ContentProvider为所有需要共享的数据创建一个数据表。

    ContentProvider会对外提供一个公开的URI来标识数据集。

    URI:通用资源标识符(Uniform Resource Identifier)

    URI主要分三个部分:scheme, authority 和 path。其中authority又分为host和port。


    六 、Notification


    Notification用来在不需要焦点或不中断它们当前Activity的情况下提示用户。
    它们是Service或Broadcast Receiver获得用户注意的首选方式。
    例如:当设备收到文本信息或外部来电时,它通过闪光,发声,显示图标或显示对话框信息来提醒你。

  • 相关阅读:
    vue代码调试
    在vscode中无法使用yarn
    js滚动条计算公式
    chrome插件制作-高级篇
    网站js注入实现自动输入账号密码
    String、StringBuffer和StringBuilder有什么区别?
    待重写
    http协议
    待重写
    java内存加载机制
  • 原文地址:https://www.cnblogs.com/liuhongfeng/p/5093396.html
Copyright © 2011-2022 走看看