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生命周期
怎么知道拨号界面action是哪个?
根据上面启动的时候可以在LogCat中查看ActivityManage标签启动了那些Activity得到启动时的Activity,然后查看源码,再去看看里面的intentfilter