2019-05-31
显式Intent的实现方式
//方式1:
Intent intent = new Intent(context,目标类);
startActivity(intent);
//方式2
Intent intent = new Intent( );
ComponentName cn = new ComponentName(context,目标类);
intent.setComponent(cn);
startActivity(intent);
隐式Intent的实现方式
//1:action
public final static String CRAZYIT_ACTION ="org.crazyit.intent.action.CRAZYIT_ACTION";
Intent intent = new Intent();
intent.setAction(MainActivity.CRAZYIT_ACTION);
startActivity(intent);
//2:category
final static String CRAZYIT_CATEGORY = "org.crazyit.intent.category.CRAZYIT_CATEGORY";
Intent intent = new Intent();
intent.addCategory(MainActivity.CRAZYIT_CATEGORY);
startActivity(intent);
//3:data
Intent intent = new Intent();
intent.setDataAndType(Uri.parse("lee://www.fkjava.org:8888/mypath"), "abc/xyz");
//4:type
//未指定Data属性,Type才会发挥作用
<intent-filter>
<!-- 指定该Activity能响应action为指定字符串的Intent -->
<action android:name="org.crazyit.intent.action.CRAZYIT_ACTION" />
<!-- 指定该Activity能响应category为指定字符串的Intent -->
<category android:name="org.crazyit.intent.category.CRAZYIT_CATEGORY" />
<!-- 指定该Activity能响应category为android.intent.category.DEFAULT的Intent -->
<category android:name="android.intent.category.DEFAULT" />
<!-- 需要Intent的Data属性的scheme是lee,且host是www.fkjava.orgport是8888,且path是/mypath且type是abc/xyz,才可启动该Activity -->
<data android:scheme="lee"
android:host="www.fkjava.org"
android:port="8888"
android:path="/mypath"
android:mimeType="abc/xyz"/>
</intent-filter>
| 个数 | <intent-filter…/>元素 |
|---|---|
| 0~N | <category…/>子元素 |
| 0~N | <action…/>子元素 |
| 0~1 | <data…/>子元素 |
| 0~1 | <Type…/>子元素 |
Extras属性
Bundle data=new Bundle();
data.putString("name", sTemp1);
data.putString("pwd", sTemp2);
Intent intent=new Intent(LoginCallActivity.this,DataShowActivity.class);
intent.putExtras(data);
//intent默认Bundle
//intent.putExtras("name",sTemp1);
//intent.putExtras("pwd",sTemp2);
系统内置Action
1,web浏览器
Uri uri= Uri.parse("http://kuikui.javaeye.com");
intent = new Intent(Intent.ACTION_VIEW, uri);
2,地图
Uri mapUri = Uri.parse("geo:38.899533,-77.036476");
intent = new Intent(Intent.ACTION_VIEW, mapUri);
3,调拨打电话界面
Uri telUri = Uri.parse("tel:100861");
intent = new Intent(Intent.ACTION_DIAL, telUri);
4,直接拨打电话
Uri callUri = Uri.parse("tel:100861");
intent = new Intent(Intent.ACTION_CALL, callUri);
5,卸载
Uri uninstallUri = Uri.fromParts("package", "xxx", null);
intent = new Intent(Intent.ACTION_DELETE, uninstallUri);
6,安装
Uri installUri = Uri.fromParts("package", "xxx", null);
intent = new Intent(Intent.ACTION_PACKAGE_ADDED, installUri);
7,播放
Uri playUri = Uri.parse("file:///sdcard/download/everything.mp3");
intent = new Intent(Intent.ACTION_VIEW, playUri);
8,调用发邮件
Uri emailUri = Uri.parse("mailto:shenrenkui@gmail.com");
intent = new Intent(Intent.ACTION_SENDTO, emailUri);
9,发邮件
intent = new Intent(Intent.ACTION_SEND);
String[] tos = { "shenrenkui@gmail.com" };
String[] ccs = { "shenrenkui@gmail.com" };
intentputExtra(Intent.EXTRA_EMAIL, tos);
intent.putExtra(Intent.EXTRA_CC, ccs);
intent.putExtra(Intent.EXTRA_TEXT, "body");
intent.putExtra(Intent.EXTRA_SUBJECT, "subject");
intent.setType("message/rfc882");
Intent.createChooser(intent, "Choose Email Client");
10,发短信
Uri smsUri = Uri.parse("tel:100861");
intent = new Intent(Intent.ACTION_VIEW, smsUri);
intent.putExtra("sms_body", "shenrenkui");
intentt.setType("vnd.android-dir/mms-sms");
11,直接发邮件
Uri smsToUri = Uri.parse("smsto://100861");
intent = new Intent(Intent.ACTION_SENDTO, smsToUri);
intent.putExtra("sms_body", "shenrenkui");
12,发彩信
Uri mmsUri = Uri.parse("content://media/external/images/media/23");
intent = new Intent(Intent.ACTION_SEND);
intent.putExtra("sms_body", "shenrenkui");
intent.putExtra(Intent.EXTRA_STREAM, mmsUri);
intent.setType("image/png");
intent添加tab
public class MainActivity extends TabActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 获取该Activity里面的TabHost组件
TabHost tabHost = getTabHost();
// 使用Intent添加第一个Tab页面
tabHost.addTab(tabHost
.newTabSpec("tab1")
.setIndicator("已接电话",
getResources().getDrawable(R.drawable.ic_launcher))
.setContent(new Intent(this, BeCalledActivity.class)));
// 使用Intent添加第二个Tab页面
tabHost.addTab(tabHost.newTabSpec("tab1")
.setIndicator("呼出电话")
.setContent(new Intent(this, CalledActivity.class)));
// 使用Intent添加第三个Tab页面
tabHost.addTab(tabHost.newTabSpec("tab1")
.setIndicator("未接电话")
.setContent(new Intent(this, NoCallActivity.class)));
}
}











网友评论