2013-10-03 47 views
3

所以我有一個是在AndroidManifest.xml中定義如下文所定義的活動答:的Android launchMode =「singleTask」和意向過濾器

<activity 
     android:name=".activity.A" 
     android:screenOrientation="landscape" 
     android:windowSoftInputMode="stateAlwaysHidden" 
     android:launchMode="singleTask"> 

     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 

</activity> 

此活動將啓動一個歡迎屏幕,我們將稱之爲活動B

如果啓動應用程序,則會顯示「歡迎」屏幕,然後一旦用戶完成操作,活動A就會返回。

我遇到的問題是當我從歡迎屏幕中按「主頁」按鈕時,我會按預期回到主屏幕。現在,當我重新點擊應用程序圖標時,應用程序將不會啓動。相反,我的活動A & B遭到破壞。如果我再次點擊該圖標,則應用程序按預期重新啓動。

現在,如果我在歡迎屏幕上並按下後退箭頭並重新點擊應用程序圖標,它會按預期啓動應用程序。我不必推兩次。

不幸的是,我必須使用launchMode =「singleTask」,因爲它是與其他團隊集成的要求。我已經多次閱讀了Tasks和Back Stack的Android API。任何指針或建議將不勝感激。

我遇到了a blog,指出有一個未公開的使用singleTask和intent-filters的錯誤,但沒有找到任何官方文檔。

感謝

編輯 下水活動B是這樣的:

Intent intent = new Intent(context, B.class); 
startActivityForResult(intent, CONST_VAR); 
+0

請包括您所使用啓動活動B. –

+0

嗨保羅的代碼,我編輯的問題,增加活動B是如何開展。謝謝 –

回答

0

我試圖使從活動A.啓動ActivityB我看到在這個問題描述沒有這樣的問題,有兩種活動。 PFB我的清單。此外,當你說主頁按鈕,它是電話主頁按鈕或您的應用程序特定的主頁按鈕。 PFB我的清單

 <activity 
     android:name="com.android.testsingletask.MainActivity" 
     android:launchMode="singleTask" 
     android:screenOrientation="landscape" 
     android:windowSoftInputMode="stateAlwaysHidden" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity 
     android:name="com.android.testsingletask.WelcomeActivity" 
     android:screenOrientation="landscape" 
     android:windowSoftInputMode="stateAlwaysHidden" 
     android:label="@string/app_name" > 
    </activity>