Android Intent个人介绍

在Android中要打开一个新的Activity, 不用说,肯定会用到Intent,Intent作为Android的四大组件之一,个人理解,Intent的作用就是用来在(其它三个不同组件)间进行通讯,通常打开一个Activity是采用

intent.setClass(ThisActivity.this,TargetActivity.class);

也可以不使用上述方法,可以通过配置文件来打开下一个Activity

首先把setClass方法改成  intent.setAction("com.accp.targetactivity");

同时修改配置文件

<activity android:name=".TargetActivity">

     <intent-filter>

         <action android:name="com.accp.targetactivity" />

         <category android:name="android.intent.category.DEFAULT" />

     </intent-filter>

</activity>

Intent的Action,Category属性都是一个普通的字符串,其中Action代表该Intent所要完成的一个抽象”动作“,而Category则用于为Action增加额外的附加类别信息。通常Action属性会与Category属性结合使用。

到底程序会启动哪个Activity?取决于Activity配置中的元素的配置。<activity.../> 的<Intent-filter.../>子元素则用于配置Activity所能响应的Intent。

说道这里我们知道,我们自己所开发的工程会有一个主Activity,这个主Activity相当于C#中的main函数,是整个应用程序的入库,那么这个主Activity是如何启动的呢?是Intent吗?带着这个疑问我在网上找到了一些资料,其中罗升阳的博客中专门有对这个的介绍《Android应用程序启动过程源代码分析》 这篇博文详细的介绍了应用程序是如何启动的,当然也有我的猜想,主Activity的确是由Intent启动的。

这篇博文也告诉我们,要深入了解一些东西,可以从源码入手,答案就在源码中。这算是一种解决问题的思路和方法。

原文地址:https://www.cnblogs.com/zuiyirenjian/p/4125566.html