在Android开发过程中,Intent又被细分显示Intent和隐式Intent,两者的区别在哪呢?
显示Intent
显式Intent的意思是指可以直接指定需要打开的Activity对应的Java的类
用代码表示如下:
Intent intent = new Intent(this, FirstActivity.class);
startActivity(intent);
或者另一种写法
Intent intent = new Intent;
intent.setClass(this, FirstActivity.class);
startActivity(intent);
这两种写法效果都是一样的,从一个Activity跳到另一个指定的Activity;
隐式Intent
隐式Intent指的是不明确指定启动哪个Activity,而是通过在AndroidManifest.xml文件中设置Action、Data、Category,让系统来筛选出合适的Activity。筛选是根据所有的来筛选。
例如:
下面以Action为例:
首先要在AndroidManifest.xml文件中,被调用的Activity要有一个带有并且包含的Activity,设定它能处理的Intent,并且category设为"android.intent.category.DEFAULT"。action的name是一个字符串,可以自定义,例如这里设成为"demo":
<activity
android:name="com.example.app.FirstActivity">
<intent-filter>
<action android:name="demo"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
最后在主函数里面setAction就可以实现了
Intent intent = new Intent();
intent.setAction("demo");
startActivity(intent);