当前位置:操作系统 > 安卓/Android >>

从头学Android之机器人的意图之Intent的CompentName

 

类层次结构图:

\

 

什么是Intent?

Intent是一个动作的完整描述,包含了动作的产生组件、接收组件和仁慈的数据信息。可以理解为它是一个信使。当然,也可以将Intent视为一个在不同组件之间仁慈的消息,这个消息在到达接收组件后,接收组件会执行相关的操作。它使得Android系统中互相独立的应用程序组件,成为一个可以互相通信的组件组件集合。因此,无论这些组件是否在同一个应用程序中,Intent 可以将一个组件的数据和动作仁慈给另一个组件

主要常见的用途:1、启动Activity和Service  2、在Android系统上发布广播消息

 

Intent的组成:

动作:Action

数据:Data

分类:Category

类型:Type

组件:Component

扩展信息:Extra

 

首先来看Intent的Component属性:

Component可以用来查找组件,我们可以根据setComponent()、setClass()、setClassName()来设置组件的名称。通过getComponet(ComponetName componetName)来获取组件

先来看下ComponetName类:

构造函数:

public ComponentName(String pkg, String cls)

参数说明:

pkg:包名

cls:完整类名

      ComponentName componentName = new ComponentName(

            "com.jiahui.activity", "com.jiahui.activity.MyActivity");

            Intent intent = new Intent();

public ComponentName (Context pkg, String cls)

参数说明:

pkg:应用程序上下文

cls:类名(必须是完整的类名,也就是包名+类名)

ComponentName componentName = new ComponentName(

                 MainActivity.this, "com.jiahui.activity.MyActivity");

           Intent intent = new Intent();

public ComponentName (Context pkg, Class<?> cls)

参数说明:

pkg应用程序上下文

cls:类名   

    ComponentName componentName = new ComponentName(

            MainActivity.this, MyActivity.class);

public ComponentName (Parcel in)

 

实例:Intent_ComponetDemo

\

 

 

 

点击按钮跳转到另外一个Activity获取到组件包名称和类名称显示在另外一个Activit里的文本框中

\

 

代码:

view plainprint?

package com.jiahui.activity; 

 

  

 

import android.app.Activity; 

 

import android.content.ComponentName; 

 

import android.content.Intent; 

 

import android.os.Bundle; 

 

import android.view.View; 

 

import android.view.View.OnClickListener; 

 

import android.widget.Button; 

 

  

 

public class MainActivity extends Activity { 

 

       private Button myBtn; 

 

       public void onCreate(Bundle savedInstanceState) { 

 

              super.onCreate(savedInstanceState); 

 

              setContentView(R.layout.main); 

 

              myBtn = (Button) findViewById(R.id.myBtn); 

 

              //注册事件 

 

              myBtn.setOnClickListener(new OnClickListener() { 

 

                     public void onClick(View v) { 

 

  

 

                            // 通过上下文和类名创建ComponetName 

 

                            ComponentName componentName = new ComponentName( 

 

                                          MainActivity.this, MyActivity.class); 

 

                            // 通过包名和类名创建ComponetName 

 

                            // ComponentName componentName = new ComponentName( 

 

                            // "com.jiahui.activity", "com.jiahui.activity.MyActivity"); 

 

                            // Intent intent = new Intent(); 

 

                            // 通过上下文和类名创建ComponetName 

 

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,