Intent 专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦
DIAL AIDL别混淆了
隐式Intent
Intent intent = new Intent(Intent.ACTION_DIAL);
Uri data = Uri.parse("tel:" + "135xxxxxxxx");
intent.setData(data);
startActivity(intent);
官方建议使用显示Intent来启动Service,同时也不要为Service设置IntentFilter
如果用户有内容想分享给其他应用,就创建一个Intent,
将它的Action属性设置为ACTION_SEND,然后将要分享的内容设置到Extras属性中,
然后调用startActivity()方法,用户就可以选择将内容分享到哪一个应用。
// 要将textMessage信息分享出去
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, textMessage);
sendIntent.setType("text/plain");
// 确认是否有组件能够处理这个隐式Intent
if (sendIntent.resolveActivity(getPackageManager()) != null) {
startActivity(sendIntent);
}
隐式Intent和IntentFilter进行比较时的三要素是Intent的Action、Data以及Category。
实际 上,一个隐式Intent请求要能够传递给目标组件,必要通过这三个方面的检查。
如果任何一方面不匹配,Android都不会将该隐式Intent传递给 目标组件。
<activity android:name="BrowserActivity"
android:label="Browser"
android:launchMode="singleTask"
android:alwaysRetainTaskState="true"
android:configChanges="orientation|keyboardHidden"
android:theme="@style/BrowserTheme">