android--顯式跳轉和隱式跳轉


區別如下:

  1. 顯式啟動Activity指的是在Intent內部直接聲明要啟動的activity所對應的class。

  2. 隱式啟動Activity的intent到底發給哪個activity,需要進行三個匹配,一個是action, 一個是category,一個是data,可以是全部或部分匹配,同樣適用於Service和BroadcastReceiver。

A:顯式啟動

下面用代碼來解釋什么是顯式啟動。

[java] view plain copy print?在CODE上查看代碼片派生到我的代碼片
  1. Intent intent=new Intent(MainActivity.this, SecondActivity.class);   
  2. startActivity(intent);  

B:隱式啟動
隱式啟動不同之處在於並不需要像Intent(MainActivity.this, SecondActivity.class)這樣傳參數然后再Start另一個Activity.需要在intent添加過濾器intentfilter。

[html] view plain copy print?在CODE上查看代碼片派生到我的代碼片
  1. <span style="color:#454545;"><activity  
  2. android:name="com.example.android.tst.SecondActivity"  
  3. android:label="@string/title_activity_main" >  
  4. <intent-filter>  
  5. </span><span style="color:#ff0000;"><action android:name="com.example.android.tst.SecondActivity"/>  
  6. <category android:name="android.intent.category.DEFAULT" /></span><span style="color:#454545;">  
  7. </intent-filter>  
  8. </activity></span>  
這樣,需要在啟動另一個Activity的時候只需要如下方法就可以:

[java] view plain copy print?在CODE上查看代碼片派生到我的代碼片
  1. Intent intent=new Intent("com.example.android.tst.SecondActivity");   
  2. startActivity(intent);  
C: 跳轉到另一個Activity后,當返回時能返回數據

在跳轉的Activity端,調用startActivityForResult(intent2, 1),跳轉到下一個Activity,其中第一個參數為傳入的意圖對象,第二個為設置的請求碼;

跳轉到第二個Activity后,調用setResult(100, intent)方法可返回上一個Activity,其中第一個參數為結果碼,第二個為傳入的意圖對象;

在第一個Activity通過onActivityResult()方法獲得返回的數據。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com