1、显示Intent
意图明显,通过Intent启动另外一个活动,这是安卓中各组件进行交互的一种重要方式。
一般用于启动活动,启动服务,发送广播等场景。
实现方法,这里我只说思路,实践还是要自己实操才能明白:
1、首先多创建一个activity,命名为别的,这个就是待会咱们要调用的另外一个activity,可以跟主activity一样。 2、创建完后记得在AndroidManifest.xml中为新创建的activity进行注册。 同样的,要将其包括在<application分支下 ep: <activity android:name=".SecondActivity" > </activity> 3、由于我们创建的这一个新的活动并不是主活动,所以不需要配置<intent-filter>标签里的内容,所以不用理会 4、使用Intent实现调用另外一个activity Intent有多个构造函数的重载,其中一个是 Intent(Context packageContext, Class<?> cls)。 这个构造函数接收两个参数,第一个参数 Context 要求提供一个启动活动的上下文,第二个 参数 Class 则是指定想要启动的目标活动,通过这个构造函数就可以构建出 Intent 的“意图”。 所以,称做显示Intent ep: button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //我在按键单击事件中实现这个过程 //当我按下button的时候,此时FirstActivity就会去调用SecondActivity,跳到另外一个界面去 //返回主界面也很简单,只要按下手机上的back键就可以了 Intent intent = new Intent(FirstActivity.this, SecondActivity.class); //启动活动 startActivity(intent); } });
2、隐式Intent
按照作者的书籍可以理解为,隐式就没有那么高调的去启动,而是偷偷摸摸的,比较低调,含蓄的作风。
它并不明确的想要去启动哪一个活动,而是通过更为抽象的action和category等信息,交由系统去分析这个
Intent,并去找出合适的活动去启动。
那么如何隐式启动第二个活动呢?
1、还是一样,和上面显式的一样第一个步骤 2、打开AndroidManifest.xml配置<intent-filter>标签里的内容 <activity android:name=".SecondActivity" > <intent-filter> //指明了当前活动能够相应的Intent中带有的category //这里要求只有action和category中的内容同时能够匹配上Intent中指定的action和category时,这个活动才能响应Intent <action android:name="com.example.activitytest.ACTION_START" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> 3、在事件中添加Intent ep: button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent("com.example.activitytest.ACTION_START"); startActivity(intent); } });