显式启动Activity和隐式启动Activity
Posted 罗夏
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了显式启动Activity和隐式启动Activity相关的知识,希望对你有一定的参考价值。
1.显式启动
Intent intent = new Intent(this, class);
startActivity(intent);
2.隐式启动
androidManifest.xml中定义某个Activity的intent-fliter
<intent-filter>
<action android:name="com.example.activity.ACTION_START" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="com.example.activity.ACTION_START" />
</intent-filter>
Activity中
Intent intent = new Intent("com.example.activity.ACTION_START");
//android.intent.category.DEFAULT是一种默认的category,在startActivity时自动添加
intent.addCategory("com.example.activity.ACTION_START");
startActivity(intent);
隐式启动,在启动的时候是不明确的,需要匹配系统或AndroidManifest.xml中的intent-filter定义,只有action和category和data完全匹配时,才会启动.
隐式启动不仅可以启动自己的Activity,还可以启动其他的Activity,如打开网页
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);
这儿首先指定了intent的action为Intent.ACTION_VIEW,这是android内置的打开网页动作,然后通过Uri.parse将一个网址解析为Uri对象,再调用Intent的setData将Uri对象传递进去.
以上是关于显式启动Activity和隐式启动Activity的主要内容,如果未能解决你的问题,请参考以下文章
Android-----Intent中通过startActivity(Intent intent )显式启动新的Activity