Intent有两种
显性Intent
隐性Intent
显式Intent:通过组件名指定启动的目标组件,比如startActivity(new Intent(A.this,B.class)); 每次启动的组件只有一个~
隐式Intent:不指定组件名,而指定Intent的Action,Data,或Category,当我们启动组件时, 会去匹配AndroidManifest.xml相关组件的Intent-filter,逐一匹配出满足属性的组件,当不止一个满足时, 会弹出一个让我们选择启动哪个的对话框~
Intent还是应用程序组件之间通信的重要媒介,两个Activity把需要交换的数据封装成Bundle对象,然后使用Intent来携带Bundle对象,这样就实现了两个Activity之间的数据交换。
Intent存在以下几个属性:Component,Action,Category,Data,Type,Extra,Flag七个属性,其中Component属性用来指定需要启动的目标组件,Extra属性用于携带需要交换的数据。
下面写一些Intent的一些基本代码
Intent启动Activity
startActivity(new Intent(this, TestActivity.class)); MainActivity.this.overridePendingTransition(R.anim.slide_in_up,R.anim.slide_no);
Intent关闭Activity
TestActivity.this.finish();
TestActivity.this.overridePendingTransition(0, R.anim.slide_out_down);
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this,OneActivity.class);
/*第一种方式将数据封装到intent对象中/
// intent.putExtra(“data”,”随便写的”);
/*第二种方式将数据封装至bundle对象中/
Bundle bundle = new Bundle();
bundle.putString(“data”,”随便写的”);
intent.putExtras(bundle);
startActivityForResult(intent,0x01);
}
});