<p>Intent大致分为两种:显式Intent和隐式Intent。</p><p>一、显示Intent为从一个activity跳转到另一个activity。如:</p><pre class="brush:java;toolbar:false">Intentintent=newIntent(MainActivity.this,SecondActivity.class); startActivity(intent);</pre><p>二、隐式Intent它不明确指出我们想要启动哪一个活动,而是指定了一系列更为抽象的action和category等信息来过滤,找到符合条件的Activity。</p><p>1.setAction():表明我们想要启动能够响应设置的这个action的活动,并在清单文件AndroidManifest.xml中设置action属性。如:(打开一个拨号界面)</p><pre class="brush:java;toolbar:false">Intentintent=newIntent(); intent.setAction(Intent.ACTION_DIAL); startActivity(intent); /** *以上代码也可以直接写为: *Intentintent=newIntent(Intent.ACTION_DIAL); *startActivity(intent); */ &lt;activityandroid:name=&quot;.MainActivity&quot;&gt; &lt;intent-filter&gt; &lt;actionandroid:name=&quot;android.intent.action.MAIN&quot;/&gt; &lt;actionandroid:name=&quot;android.intent.action.DIAL&quot;/&gt; &lt;categoryandroid:name=&quot;android.intent.category.LAUNCHER&quot;/&gt; &lt;/intent-filter&gt; &lt;/activity&gt;</pre><p>结果:打开一个拨号界面</p><p></p><p>2.setData():通常是URI格式定义的操作数据。(只要设置setAction ()就要在清单文件AndroidManifest.xml中设置action属性)例如:tel:</p><pre class="brush:java;toolbar:false">Intentintent=newIntent(); intent.setAction(Intent.ACTION_DIAL); intent.setData(Uri.parse(&quot;tel:10086&quot;)); startActivity(intent); /** *以上代码也可以直接写为: *Intentintent=newIntent(Intent.ACTION_DIAL,Uri.parse(&quot;tel:10086&quot;)); *startActivity(intent); */ &lt;activityandroid:name=&quot;.MainActivity&quot;&gt; &lt;intent-filter&gt; &lt;actionandroid:name=&quot;android.intent.action.MAIN&quot;/&gt; &lt;actionandroid:name=&quot;android.intent.action.DIAL&quot;/&gt; &lt;categoryandroid:name=&quot;android.intent.category.LAUNCHER&quot;/&gt; &lt;/intent-filter&gt; &lt;/activity&gt;</pre><p>3.setType():指定数据类型,选出适合的应用来。(只要设置setAction ()就要在清单文件AndroidManifest.xml中设置action属性)例如:</p><pre class="brush:bash;toolbar:false">Intentintent=newIntent(); intent.setAction(Intent.ACTION_SEND); intent.setType(&quot;text/plain&quot;); startActivity(intent); /** *以上代码也可以直接写为: *Intentintent=newIntent(Intent.ACTION_SEND); *intent.setType(&quot;text/plain&quot;); *startActivity(intent); */ &lt;activityandroid:name=&quot;.MainActivity&quot;&gt; &lt;intent-filter&gt; &lt;actionandroid:name=&quot;android.intent.action.MAIN&quot;/&gt; &lt;actionandroid:name=&quot;android.intent.action.SEND&quot;/&gt; &lt;categoryandroid:name=&quot;android.intent.category.LAUNCHER&quot;/&gt; &lt;/intent-filter&gt; &lt;/activity&gt;</pre><p>4.putExtra():把要传递的数据暂存在Intent中,启动了另一个活动后,只需要把这些数据再从Intent中取出就可以了。</p>
返回顶部 留言