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.