Android开发笔记关于intent

    intent翻译是目的,意图,含义。它是android中用来与操作系统通信的媒介工具。

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

    该构造方法中,class类型参数告诉ActivityManager应该启动哪个activity,而Context参数则告诉ActivityManager在哪里可以找到它。

    于是可以通过申明一个Intent实例,然后通过startActivity(intent)去启动activity。如下

Intent intent = new Intent(Activity1.this,Activity2.class);
startActivity(intent);

    startActivity方法是一个Activity启动另一个Activity的最简单的方式。activity调用startActivity(intent)方法时,调用请求是发给了操作系统。具体来说是发送给了操作系统的ActivityManager。ActivityManager负责创建Activity实例并调用onCreate(Bundle)方法。而该启动的另一个的Activity则就在intent中。这里是Activity1去启动Activity2.当然在启动之前,必须保证在manifest配置文件中声明了指定的Class。


    显示intent与隐式intent

    通过指定Context与Class对象,然后调用intent的构造方法来创建Intent,则是创建的显示intent。同一个应用中,使用显示的intent来启动activity。如上面所述,即为显示intent。而一个应用的activity如果需要启动另一个应用的activity,可以通过创建隐式intent来处理。

    在显示的intent中,我们需要指定要启动的activity类,操作系统负责去启动它,而在隐式intent中,我们只需要描述要完成的任务,操作系统就会找到合适的应用(如果找到多个符合的activity,用户则会看到一个可选择的应用列表),并在其中启动相应的activity。

    隐式intent的组成

1.要执行的操作

通常以Intent类中的常量来表示。例如,要访问某个URL,可以使用Intent.ACTION_VIEW;要发送邮件则可以使用Intent.ACTION_SEND。

2.待访问数据的位置

这可以是某个URL,也可是某个文件的URI,或者是指向ContentProvider中某条记录的某个内容URI。

3.操作涉及的数据类型

这指的是MIME形式的数据类型,如text/html。如果一个intent包含数据位置,那么通常可以从中推测出数据的类型

4.可选类别

操作用于描述具体要做什么,而类别通常用来描述你打算何时、何地或者如何使用某个activity。


猜你喜欢

转载自blog.csdn.net/xihairanfeng/article/details/80723760