版權聲明:本文為部落客原創文章,轉載請标明出處。 https://blog.csdn.net/chaoyu168/article/details/50982599
差別如下:
- 顯式啟動Activity指的是在Intent内部直接聲明要啟動的activity所對應的class。
- 隐式啟動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- Intent intent=new Intent(MainActivity.this, SecondActivity.class);
- 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- <span style="color:#454545;"><activity
- android:name="com.example.android.tst.SecondActivity"
- android:label="@string/title_activity_main" >
- <intent-filter>
- </span><span style="color:#ff0000;"><action android:name="com.example.android.tst.SecondActivity"/>
- <category android:name="android.intent.category.DEFAULT" /></span><span style="color:#454545;">
- </intent-filter>
- </activity></span>
這樣,需要在啟動另一個Activity的時候隻需要如下方法就可以:
https://code.csdn.net/snippets/1623818 https://code.csdn.net/snippets/1623818/fork- Intent intent=new Intent("com.example.android.tst.SecondActivity");
C:跳轉到另一個Activity後,當傳回時能傳回資料
在跳轉的Activity端,調用startActivityForResult(intent2, 1),跳轉到下一個Activity,其中第一個參數為傳入的意圖對象,第二個為設定的請求碼;
跳轉到第二個Activity後,調用setResult(100, intent)方法可傳回上一個Activity,其中第一個參數為結果碼,第二個為傳入的意圖對象;
在第一個Activity通過onActivityResult()方法獲得傳回的資料。