Activity 显式启动与隐式启动 应用

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.
相关文章
相关标签/搜索