Intent基本介绍

来源:互联网 发布:js传值到jsp 编辑:程序博客网 时间:2024/04/30 09:10

Android各种基本知识笔记-Intent


Intent介绍

翻译得不是很好,所以贴上原文,觉得写得不对可以给我指出错误,感谢!

An intent is an abstract description of an operation to be performed. It can be used with startActivity to launch an Activity, broadcastIntent to send it to any interested BroadcastReceiver components, and startService(Intent) or bindService(Intent, ServiceConnection, int) to communicate with a background Service.

intent是一个即将执行的操作的抽象描述。它可以用startActivity函数启动一个Activity,broadcastIntent函数可以将其发送到任何BroadcastReceiver组件中,而且startService(Intent)函数和bindService(Intent,ServiceConnection,int)函数也可以在后台服务进行通信。


An Intent provides a facility for performing late runtime binding between the code in different applications. Its most significant use is in the launching of activities, where it can be thought of as the glue between activities. It is basically a passive data structure holding an abstract description of an action to be performed.

Intent提供一个工具在不同应用程序之间执行代码的延迟间隔进行绑定。其最重要的用途是启动activities,它被称为activities之间的胶水。要执行的action的抽象描述基本上等同于一个被动的数据结构。


总的来说就是Intent的用途很广,可以在Activity、Broadcast、Service中起到很大作用


显式隐式Intent用法

  • 显式Intent
    直接调用Intent(Context packageContext, Class<?> cls)函数
startAty = (Button) findViewById(R.id.startAty);        startAty.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                Intent i = new Intent(MainActivity.this, AnotherAty.class);                startActivity(i);            }        });

下面是显示Intent的启动页面
显式Intent启动页面


  • 隐式Intent

直接调用Intent(String action)函数

这是AndroidManifest.xml文件中另一个Activity的配置信息,其中android:exported="false"表示的该Activity是不能被其他App启动,而默认参数是true

<activity android:name=".AnotherAty" android:exported="false">    <intent-filter>        <category android:name="android.intent.category.DEFAULT" />        <action android:name="com.hanksenye.learnintent.intent.action.AnotherAty" />    </intent-filter></activity>
下面是MainActivity的按钮Intent配置
startAty.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                Intent i = new Intent("com.hanksenye.learnintent.intent.action.AnotherAty");                startActivity(i);            }        });

下面是隐式Intent启动页面
隐式Intent启动页面


Intent的构造函数


下面是官方文档的介绍

  • Intent()

    Create an empty intent.
    创建一个空的intent

  • Intent(Intent o)

    Copy constructor.
    复制一个构造器

  • Intent(String action)

    Create an intent with a given action.
    用一个已给的action创建一个intent

  • Intent(String action, Uri uri)

    Create an intent with a given action and for a given data url.
    用一个已给的action创建一个intent来启动一个uri

  • Intent(Context packageContext, Class<?> cls)

    Create an intent for a specific component.
    创建一个intent启动一个特殊的组件(例如别的Activity)

  • Intent(String action, Uri uri, Context packageContext, Class<?> cls)

    Create an intent for a specific component with a specified action and data.
    创建一个intent启动一个带有特定action和data的特殊组件


下面是标准的Actions


  • Standard Activity Actions

    • ACTION_MAIN
    • ACTION_VIEW
    • ACTION_ATTACH_DATA
    • ACTION_EDIT
    • ACTION_PICK
    • ACTION_CHOOSER
    • ACTION_GET_CONTENT
    • ACTION_DIAL
    • ACTION_CALL
    • ACTION_SEND
    • ACTION_SENDTO
    • ACTION_ANSWER
    • ACTION_INSERT
    • ACTION_DELETE
    • ACTION_RUN
    • ACTION_SYNC
    • ACTION_PICK_ACTIVITY
    • ACTION_SEARCH
    • ACTION_WEB_SEARCH
    • ACTION_FACTORY_TEST

  • Standard Broadcast Actions

    • ACTION_TIME_TICK
    • ACTION_TIME_CHANGED
    • ACTION_TIMEZONE_CHANGED
    • ACTION_BOOT_COMPLETED
    • ACTION_PACKAGE_ADDED
    • ACTION_PACKAGE_CHANGED
    • ACTION_PACKAGE_REMOVED
    • ACTION_PACKAGE_RESTARTED
    • ACTION_PACKAGE_DATA_CLEARED
    • ACTION_PACKAGES_SUSPENDED
    • ACTION_PACKAGES_UNSUSPENDED
    • ACTION_UID_REMOVED
    • ACTION_BATTERY_CHANGED
    • ACTION_POWER_CONNECTED
    • ACTION_POWER_DISCONNECTED
    • ACTION_SHUTDOWN

  • Standard Categories

    • CATEGORY_DEFAULT
    • CATEGORY_BROWSABLE
    • CATEGORY_TAB
    • CATEGORY_ALTERNATIVE
    • CATEGORY_SELECTED_ALTERNATIVE
    • CATEGORY_LAUNCHER
    • CATEGORY_INFO
    • CATEGORY_HOME
    • CATEGORY_PREFERENCE
    • CATEGORY_TEST
    • CATEGORY_CAR_DOCK
    • CATEGORY_DESK_DOCK
    • CATEGORY_LE_DESK_DOCK
    • CATEGORY_HE_DESK_DOCK
    • CATEGORY_CAR_MODE
    • CATEGORY_APP_MARKET

  • Standard Extra Data

    • EXTRA_ALARM_COUNT
    • EXTRA_BCC
    • EXTRA_CC
    • EXTRA_CHANGED_COMPONENT_NAME
    • EXTRA_DATA_REMOVED
    • EXTRA_DOCK_STATE
    • EXTRA_DOCK_STATE_HE_DESK
    • EXTRA_DOCK_STATE_LE_DESK
    • EXTRA_DOCK_STATE_CAR
    • EXTRA_DOCK_STATE_DESK
    • EXTRA_DOCK_STATE_UNDOCKED
    • EXTRA_DONT_KILL_APP
    • EXTRA_EMAIL
    • EXTRA_INITIAL_INTENTS
    • EXTRA_INTENT
    • EXTRA_KEY_EVENT
    • EXTRA_ORIGINATING_URI
    • EXTRA_PHONE_NUMBER
    • EXTRA_REFERRER
    • EXTRA_REMOTE_INTENT_TOKEN
    • EXTRA_REPLACING
    • EXTRA_SHORTCUT_ICON
    • EXTRA_SHORTCUT_ICON_RESOURCE
    • EXTRA_SHORTCUT_INTENT
    • EXTRA_STREAM
    • EXTRA_SHORTCUT_NAME
    • EXTRA_SUBJECT
    • EXTRA_TEMPLATE
    • EXTRA_TEXT
    • EXTRA_TITLE
    • EXTRA_UID
0 0