Intent是Android程序中各个组件之间进行交互的一种重要方式。它不仅可以指明当前组件想要执行的动作,还可以传递各种数据。Intent一般被用于启动Activity,Service以及发送广播。
Intent大致可分为显式Intent和隐式Intent。
显式的调用一般如下:
Intent intent = new Intent(TestActivity.this, SecondActivity.class);
startActivity(intent);
如果要传递数据,可以通过putExtra()接口传递数据。
隐式调用一般是通过匹配<intent-filter>的内容来实现<intent-filter>中一般有action和category两个属性,如下所示
<intent-filter>
<action android:name="com.example.ACTION_START"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
Intent intent = new Intent("example.ACTION");
intent.addCategory("example.category");
startActivity(intent);
只有当action和category指定的属性同时匹配时,指定intent的activity才会被调用,否则会因为找不到对应的activity而报crash错误。
网友评论