2015-06-28 52 views
1

我注意到有兩種方法可以用Intent啓動一個Activity。Android Manifest Confusion

1)用 - [機器人:名稱= 「MainActivity 」]

Intent intent = new Intent(context, MainActivity.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
context.startActivity(intent); 

2)使用 - [動作機器人:名稱=「 com.example.MainActivity」]從Intent_Filter

String actionName = "com.example.MainActivity"; 
Intent intent = new Intent(); 
intent.setAction(actionName); 
context.startActivity(i); 

那有什麼區別?爲什麼我們必須在清單中設置名稱和intent_filter,如果它們都做同樣的事情?

=== --- ==

二混亂我是...有沒有用「OK谷歌」語音啓動選項來啓動,這不是在應用程序列表中顯示的活動方式?基本上實際的應用啓動器啓動應用程序的「默認主頁」,而語音啓動直接將您帶到特定的活動?

我懷疑它們的一些組合可能會完成它:

<action android:name="android.intent.action.MAIN" /> 
<category android:name="android.intent.category.LAUNCHER" /> 
<category android:name="android.intent.category.HOME" /> 
<category android:name="android.intent.category.DEFAULT" /> 

回答

2

如果你的類是在你的主包,你可以用這樣的方式:

.YourClass 

com.example.YourClass 

如果您的課程不在您的主包裝中,您應該使用以下方式:

packagename.YourClass 
+0

這是很好的信息......但是通過類名啓動活動VS通過action_filter「actions」啓動活動有什麼區別? –