简述隐式启动和显示启动Activity的方式 ?
参考答案:
隐式启动和显式启动是Android中启动Activity的两种主要方式,它们各自具有不同的特点和应用场景。
显式启动方式是通过直接指定目标Activity的类名来实现启动的。这种方式通常用于在同一项目内部启动Activity。具体实现时,可以创建一个Intent对象,并通过构造函数或setComponent方法设置目标Activity的类名,然后调用startActivity方法启动Activity。例如,从MainActivity启动ClassicActivity,可以这样做:
Intent intent = new Intent(MainActivity.this, ClassicActivity.class);
startActivity(intent);
隐式启动方式则是通过指定Action和Category等信息来启动Activity,而不是直接指定目标Activity的类名。这种方式主要用于在不同应用程序之间启动Activity,可以降低程序的耦合度。隐式启动需要在AndroidManifest.xml文件中为目标Activity配置IntentFilter,用于过滤和匹配启动请求中的Action和Category等信息。当其他Activity或应用程序发出一个符合该IntentFilter的启动请求时,目标Activity就会被启动。需要注意的是,如果不希望当前隐式Intent被跨应用启动,可以在AndroidManifest.xml对应的activity中配置android:exported="false"。
总结来说,显式启动和隐式启动在Android中各有其适用场景。显式启动适用于在同一项目内部直接启动指定的Activity,而隐式启动则适用于在不同应用程序之间通过Action和Category等信息来启动Activity,提高了程序的灵活性和可扩展性。