zoukankan      html  css  js  c++  java
  • 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启动的。

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

  • 相关阅读:
    数据访问层之Repository
    IIS执行原理
    异常分析
    Logger
    JSTL
    Kubernetes
    NET Core WordPress
    net平台的rabbitmq
    MySQL can’t specify target table for update in FROM clause
    EqualsBuilder和HashCodeBuilder
  • 原文地址:https://www.cnblogs.com/zuiyirenjian/p/4125566.html
Copyright © 2011-2022 走看看