天天看點

android--顯式跳轉和隐式跳轉

版權聲明:本文為部落客原創文章,轉載請标明出處。 https://blog.csdn.net/chaoyu168/article/details/50982599

差別如下:

  1. 顯式啟動Activity指的是在Intent内部直接聲明要啟動的activity所對應的class。
  2. 隐式啟動Activity的intent到底發給哪個activity,需要進行三個比對,一個是action, 一個是category,一個是data,可以是全部或部分比對,同樣适用于Service和BroadcastReceiver。

A:顯式啟動

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

[java] 

view

plain

copy print ? https://code.csdn.net/snippets/1623818 https://code.csdn.net/snippets/1623818/fork
  1. Intent intent=new Intent(MainActivity.this, SecondActivity.class);   
  2. startActivity(intent);  

B:隐式啟動

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

[html] 

https://code.csdn.net/snippets/1623818 https://code.csdn.net/snippets/1623818/fork
  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的時候隻需要如下方法就可以:

https://code.csdn.net/snippets/1623818 https://code.csdn.net/snippets/1623818/fork
  1. Intent intent=new Intent("com.example.android.tst.SecondActivity");   

C:跳轉到另一個Activity後,當傳回時能傳回資料

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

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

在第一個Activity通過onActivityResult()方法獲得傳回的資料。

繼續閱讀