Activity和Intent

intent:意图,要去哪里,要干什么
Activity,Service,BroadcastReceiver三个组件沟通的信使
eg:一个Activity启动另外一个Activity,还可以携带数据

  • 显式意图:
    明确的目标组件的意图。
    创建对象:Intent(Context context,Class clazz)(想想其他应用的类的信息你也不知道,参数也就不知道,所以这个是操作当前应用的)
    何时使用:操作自己应用的组建时使用

  • 隐式意图:
    更抽象的,更泛的,比如去北方这个就是更泛的说法,去哈尔滨就是准确的说法。
    创建对象:Intent(String action)
    何时使用:操作其他应用的时候使用

  • IntentFilter:
    下面intent-filter就定义了一个过滤器,因为桌面管理器也是一个app,点击其他应用图标打开他们的时候也是一个应用启动另外一个应用,所以要用隐式过滤器。

         <activity
             android:configChanges="orientation|keyboardHidden|screenLayout"
             android:screenOrientation="portrait">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="com.baidu.speech.recognizerdemo.intent.category.SAMPLE_CODE" />
             </intent-filter>
         </activity>
  • 相关的API
    Intent:
    public Intent(Context packageContext, Class<?> cls):创建显示意图
    public Intent(String action):创建隐式意图
    因为Intent有一个信使的功能,所以有getExtra,putXxxExtra
    setData(Uri data):特定格式的URI数据

  • Activity:



  • 启动Activity并携带数据:


  • 得到Intent并获取数据:


  • 启动Activity后要求新的Activity返回结果,startActivityForResult是要求启动并返回结果,onActivityResult是返回结果处理的回调函数:


  • 返回结果,也是用Intent携带数据:


  • 启动的时候可以在LogCat中查看ActivityManage标签启动了那些Activity


  • Activity界面
    运行状态:可以点击响应
    暂停状态:看得见,但是不能响应



    停止状态:不可见(被新的覆盖了)
    死亡状态:对象不存在

  • Activity生命周期


    image.png
  • 怎么知道拨号界面action是哪个?
    根据上面启动的时候可以在LogCat中查看ActivityManage标签启动了那些Activity得到启动时的Activity,然后查看源码,再去看看里面的intentfilter

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容