文章目录
调用Intent的两种方式与区别
一、通过直接指明Intent所达到的类来调用
在MainActivity中调用函数,跳转到MyRecyclerView
class MainActivity : AppCompatActivity(){
var intent =Intent(this,MyRecyclerView::class.java)
startActivity(intent)
}
该方式比较方便,直接写出目标类名即可跳转过去,但前提是目标类名是可跳转过去的,不是被封装好的。
二、根据为Intent指定属性来跳转(此处为JAVA代码)
在MainActivity中调用函数,跳转到MyRecyclerView
1.MainActivity主代码部分如下(示例):
public class MainActivity extends Activity{
public final static String CRAZYIT_ACTION
= "org.crazyit.intent.action.CRAZYIT_ACTION";
//创建Intent对象
Intent intent = new Intent();
//为Intent设置Action属性(属性值就是一个普通字符串)
intent.setAction(ActionAttr.CRAZYIT_ACTION);
startActivity(intent);
2.在AndroidManifest.xml中进行相对应的配置(部分代码)
<application
<activity android:name=".MainActivity">
<intent-filter>
//指定该Activity能响应Action为指定字符串的Intent
<action android:name="org.crazyit.intent.action.CRAZYIT_ACTION" />
//指定该Action能响应Category属性为指定字符串的Intent
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name=".MyRecyclerView">
//指定该Activity能响应Action为指定字符串的Intent
<action android:name="org.crazyit.intent.action.CRAZYIT_ACTION" />
//指定该Action能响应Category属性为指定字符串的Intent
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
目的Activity和起始点Activity都要声明相同的属性,这样才能跳转成功。
总结
方法一适用于可直接跳转到的Activity,且比较方便直观。(封装好的Activity则不可这样使用)
方法二大多数适用于跨应用,比如微信要打开qq的界面,