Intent基本介绍

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值