Android -- 显示Intent与隐式Intent的应用

前面的博客我们见到过Intent,我们通过他来指定activity之间的跳转,及数据的传递。

下面我们来了解下Intent,Intent在我们的应用中分为显示和隐式两种方式。

显示Intent

见下面这段程序

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                startActivity(new Intent(MainActivity.this, BMainActivity.class));
            }
        });
    }

看完是不是感觉很熟悉,这里的Intent(MainActivity.this, BMainActivity.class)就是显示Intent的用法,直接指定从哪跳转到哪。

隐式Activity

隐式的Activity正如名字一样,一些信息是隐秘的,我们来看看AndroidManifest.xml这个配置文件,它是用于捆绑Activity和视图的配置文件,就像jsp servlet一样。

1、我们来看下他的配置

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.intent"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="21" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".BMainActivity"
            android:label="@string/title_activity_bmain" >

            <intent-filter >
                <category android:name="android.intent.category.DEFAULT"/>
                <action android:name="com.example.intent.BMainActivity" />
            </intent-filter>

        </activity>
    </application>

</manifest>

注意看 30 和 31行,是我新加的两行代码

<intent-filter >
                <category android:name="android.intent.category.DEFAULT"/>
                <action android:name="com.example.intent.BMainActivity" />
</intent-filter>

category android:name=”android.intent.category.DEFAULT”指定Intent跳转的方式为默认,默认为Activity间的跳转。

action android:name=”com.example.intent.BMainActivity”,指定Activity的名字(别名)

2、我们来看看代码是怎么样隐式表达的。

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                startActivity(new Intent("com.example.intent.BMainActivity"));
            }
        });
    }

new Intent(“com.example.intent.BMainActivity”),直接用在AndroidManifest.xml定义的别名来进行activity之间的跳转。

3、这么用有个优点,就是可以跨应用跳转,就是我可以从一个baidu应用,跳转到一个QQ音乐应用的Activity里,瞬间感觉这个隐式Intent不错吧。我们经常在应用中见到。

所以有一点指的我们注意,那就是配置文件中,别名的命名规则,采取应用包名+activity名保证唯一。

4、如果我们不想对其他应用开放某个activity,那么通过配置接口实现。activity配置中增加android:exported=”false”,默认为true。

        <activity
            android:name=".BMainActivity"
            android:label="@string/title_activity_bmain"
            android:exported="false" >

            <intent-filter >
                <category android:name="android.intent.category.DEFAULT"/>
                <action android:name="com.example.intent.BMainActivity" />
            </intent-filter>

        </activity>
时间: 2024-08-05 14:05:07

Android -- 显示Intent与隐式Intent的应用的相关文章

Android中的显示Intent和隐式Intent

1.显示Intent 在onclick方法中 Intent intent=new Intent(FirstActivity.this,SecondActivity.class); startActivity(intent); 2.隐式Intent 隐式Intent不明确指出我们要启动哪一个活动,而是指定一系列更为抽象的action和category等信息,然后交由系统去分析这个intent,并帮我们找到合适的Intent去启动 通过标签下配置的内容,指定当前活动能够响应的action和categ

显式intent和隐式intent

android其中显式intent和隐式intent的差别 定义: Intent定义:Intent是一种在不同组件之间传递的请求消息.是应用程序发出的请求和意图. 作为一个完整的消息传递机制,Intent不仅须要发送端,还须要接收端. 显式Intent定义:对于明白指出了目标组件名称的Intent.我们称之为显式Intent. 隐式Intent定义:对于没有明白指出目标组件名称的Intent.则称之为隐式Intent. 显示Intent直接指明了被启动的的类的定义 比方一个实例: Mainact

显式Intent与隐式Intent的功能与使用方法解析。

显式Intent与隐式Intent的功能与使用方法解析. Intent,在中文中的意思是意图.就是想要做的事. 而使用startActivity(Intentintent)或者startActivityForResult(Intentintent)或者别的使用它的方法,形象地说就是指  去做你想要做的事.(do what you want to do) 首先,大体的介绍一下它们的使用差别: 1.Explicit Intent(显式意图):主要用于调用自身应用程序的组件(activity,serv

在Android中Intent的概念及应用(一)——显示Intent和隐式Intent

Intent寻找目标组件的两种方式: 显式Intent:通过指定Intent组件名称来实现的,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的. 隐式Intent:通过Intent Filter来实现的,它一般用在没有明确指出目标组件名称的前提下,一般是用于在不同应用程序之间. 一.显示Intent: 创建一个Activity的完整过程: 1.手动创建一个类,让其继承自Activity: public class MyAty extends Activity 2.让其绑定一个

Android开发学习笔记:浅谈显示Intent和隐式Intent

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://liangruijun.blog.51cto.com/3061169/655132 Intent寻找目标组件的两种方式: 显式Intent:通过指定Intent组件名称来实现的,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的. 隐式Intent:通过Intent Filter来实现的,它一般用在没有明确指出目标组件名称的前提下,一般是用于在不同应用程序之间.

Android 显示意图和隐式意图的区别

意图在android的应用开发中是很重要的,明白了意图的作用和使用后,对开发会有很大帮助.如果没有把意图搞懂,以后开发应用会感觉缺些什么. 意图的作用: 1.激活组件 2.携带数据 3.意图的匹配(运用到隐式意图) android基本的设计理念是鼓励减少组件间的耦合,因此android提供了Intent(意图),用意图激活其他组件.Intent提供了一种通用的消息系统,它允许在你的应用程序与其他应用程序间传递Intent来执行和产生事件.使用Intent可以激活android应用的三个核心组件:

隐式Intent的使用——Android学习笔记3

隐式Intent的使用 一.为什么要用隐式Intent? 但如果想调用别的程序的组件时,且开发人员往往并不清楚别的应用程序的组件名称,这时我们只能用隐式Intent,隐式Intent恰恰相反,它不会用组件名称定义需要激活的目标组件,而是Android系统帮助应用程序寻找与Intent请求意图最匹配的组件. 二.Android系统怎么找? 主要是通过Intent Filter来寻找与隐式Intent相关的对象.具体的选择方法是:Android将Intent的请求内容<intent-filter>

基础学习总结(八)--Intent中显示意图和隐式意图的用法

Intent(意图)主要是解决Android应用的各项组件之间的通讯.Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用.因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦.例如,在一个联系人维护的应用中,当我们在一个联系人列表屏幕(假设对应的Activity为listActivity)上,点击某个联系人

Intent显示启动与隐式启动

Android的Acitivity启动大致有两种方式:显式启动与隐式启动.下面分别介绍: 1.显示启动: 清单文件注册Activity <activity android:name="com.example.intentmethod.XianshiActivity" android:label="@string/xianshi_label" > </activity> 启动方法: Intent intent = new Intent(Main