笔记如下
- 显示激活
在AndroidManifest.xml文件中先注册activity
<activity android:name="com.chen.test31.SecondMainActivity" />
ntent intent = new Intent();
//明确指定激活那个应用
intent.setClass(this, SecondMainActivity.class);
startActivity(intent);
- 隐式激活
在AndroidManifest.xml文件中注册
activity android:name="com.chen.test31.SecondMainActivity" >
<!-- 通过intent隐式激活-->
<intent-filter>
<action android:name="com.chen.xxx"/>
<!-- category 都要去声明 android.intent.category.DEFAULT 默认运行到手机和平板中
-->
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
// <intent-filter>
// <action android:name="com.chen.xxx"/>
// <!-- category 都要去声明 android.intent.category.DEFAULT 默认运行到手机和平板中-->
// <category android:name="android.intent.category.DEFAULT" />
// </intent-filter>
//隐式激活
public void click02(View v){
Intent intent = new Intent();
intent.setAction("com.chen.xxx");
intent.addCategory("android.intent.category.DEFAULT");
startActivity(intent);
System.out.println("隐式激活");
}
-
那什么时候用显示激活,什么时候用隐式激活呢?
当开启的是应用内部的activity组件的时候,用显示激活
当开启的是其他应用的activity组件的时候就用隐式激活 -
开启外部应用的activity
这是两个应用
2018-03-11_092525.png
在多线程下载(一)中配置的是
<activity android:name="com.chen.multithreaddownloadtest.SecondMainActivity">
<intent-filter>
<action android:name="com.chen.xxxyy" />
<!-- <data android:scheme="chen" android:host="www.chen.com"/>-->
<data android:mimeType="text/plain" android:scheme="chen"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
app中
//隐式激活
public void click03(View v){
Intent intent = new Intent();
intent.setAction("com.chen.xxxyy");
//intent.setData(Uri.parse("chen://www.chen.com"));
//type和data不能分开设置
// intent.setData(Uri.parse("chen:"));
// intent.setType("text/plain");
intent.setDataAndType(Uri.parse("chen://www.chen.com"),"text/plain");
intent.addCategory("android.intent.category.DEFAULT");
startActivity(intent);
System.out.println("隐式激活");
}
如果在一个项目空间中有两个activity同样设置了两个一模一样的<intent-filter></intent-filter>,再去开启会怎样呢?
2018-03-10_180446.png
网友评论