1、Activity 显式启动 (代码示例):ide
public class MyActivity extends Activity { Button buttonStart; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); buttonStart = (Button) findViewById(R.id.start); buttonStart.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //显示启动 Intent intent = new Intent(); intent.setClass(MyActivity.this, SecondActivity.class); startActivity(intent); } }); } }
2、Activity 隐式启动 (代码示例):this
public class MyActivity extends Activity { Button buttonStart; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); buttonStart = (Button) findViewById(R.id.start); buttonStart.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //隐式启动 Intent intent = new Intent(); intent.setAction("asdf.SecondActivity"); startActivity(intent); } }); } }
3、应用场景code
显式Intent :经过指定Intent组件名称来实现的,通常用在知道目标组件名称的前提下,通常是相同的应用程序内部实现的。 隐式Intent: 经过Intent Filter来实现的,它一半用在没有明确指出目标组件名称的前提下,通常用于在不一样的应用程序之间。 总结:对于显式Intent, Android不须要自阿去作解析,由于目标组件很明确。Android须要解析的是隐式Intent,经过解析,将Intent映射给能够处理该Intent的Activity,Service等。Intent的解析机制主要是经过查找已经注册在AndroidManifest.xml中的全部IntentFilter以及其中定义的Intent, 最终找到 Intent.