Intent与程序调试
[1]Intent概述
[2]Intent基本应用
- 开启另一个Activity
- 开启一个Service
- 传递一个广播给接收器
[3]Intent对象属性
- ComponentName 组件名称
示例代码
Intent intent = new Intent();
ComponentName componentName = new ComponentName("com.mingrisoft","com.mingrisoft.DetailActivity);
intent.setComponent(componentName);
startActivity(intent);
-
Action属性 --可以经过Intent定义的Action常量来设置,查看API
-
Data属性 --uri
ACTION_EDIT —>content://com.android.contacts/contacts/1
ACTION_CALL —>对应拨打电话如tel:10086
ACTION_VIEW —>ht*p://www.klajdflsdaf.com -
Action与addCategory
示例代码:
Intent intent = new Intent();
intent.setAction(intent.ACTION_MAIN);
intent.addCategory(intent.CATEGORY_HOME); //返回主界面
startActivity(intent);
-
Extras属性 —添加附加数据
putExtras();
getExtras(); -
Flags属性 --应该如何启动另一个Activity,Intent定义的FLAG常量来设置
//示例代码
Intent intent = new Intent(MainActivity.this,DetailActivity.class);
intent.setFlags(intent.FlAG_ACTIVITY_NO_HISTORY); //返回主界面后,不在显示历史Activity
startActivity(intent);
[4]显式intent和隐式intent
- 显示intent
Intent intent = new Intent(MainActivity.this,DetailActivity.class);
- 隐式intent
//示例代码
Intent intent = new Intent();
intent.setAction(intent.ACITON_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);
- 显式Intent与隐式Intent的区别
显式------直接指定目标组件的名称,多用于在应用程序内部传递数据
隐式--------不会用组件名称定义要激活的目标组件,多用于在不同应用程序之间传递数据
[5]Intent过滤器
通过标记在AndroidManifest.xml中配置
<intent-filter>
<action.../> 指定组件所能响应的动作
<category...>指定 以哪种方式去执行intent请求
<data.../> 向提供action要操作的数据
</intent-filter>
示例代码:
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
[6]android studio 调试
- 编辑器调试 :
简单定位,修改 - 调试器调试 Debug