2017-06-19 52 views
1

我的啓動程序類名稱爲「SplashScreen」。我有兩個活動「MainActivity」和「MenuList」。當用戶打開應用程序時,啓動SplashScreen Activity。初始屏幕活動驗證並啓動MainActivity。用戶通過單擊MainActivity屏幕上的按鈕打開MenuList Activity,然後單擊MenuList Activity中的home按鈕。當用戶打開應用程序時,應該直接打開MenuList Activity。我已經在下面的鏈接中提到了更改。當用戶在MainActivity中按Home鍵時它工作正常。用戶在MenuList Activity中按Home按鈕時不起作用。請幫幫我。按下設備的主鍵後,打開最近的應用程序圖標按下活動

https://stackoverflow.com/a/20815679/1517280

ScreenFlow: 閃屏 - > MainActivity - >的菜單列表

清單的代碼:

<activity 
      android:name=".SplashScreenActivity" 
      android:clearTaskOnLaunch="true" 
      android:launchMode="singleTask" 
      android:screenOrientation="portrait" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
<activity 
      android:name=".MainActivity" 
      android:windowSoftInputMode="adjustResize|stateHidden" 
      android:screenOrientation="portrait" /> 


<activity 
      android:name=".MenuList" 
      android:windowSoftInputMode="adjustResize|stateHidden" 
      android:screenOrientation="portrait" /> 
+0

刪除這兩個'安卓clearTaskOnLaunch'和'機器人'。同時刪除您從鏈接的答案中添加的時髦代碼。你不需要這些。你想要的行爲是標準的Android行爲。 –

回答

0

從SplashActivity的元件取出android:clearTaskOnLaunch="true"

實際上,這不適用於您的MainActivity - 因爲此標誌已設置,所以每次返回應用程序時,任務的堆棧都將被清除,並且SplashActivity正在啓動。

+0

我在SplashActivity中添加了以下代碼。它對MainActivity工作正常 保護無效onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);如果((getIntent()。getFlags()&Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT)!= 0){ //活動被帶到前面並且未被創建, //因此,完成這將使我們到最後查看的活動 完成); return; } //定期創建活動代碼... } –

+0

謝謝。它正在工作。我已經從SplashActivity –

+0

@SrikanthReddyRamidi中刪除android:clearTaskOnLaunch =「true」,然後考慮接受答案。 – Vasiliy

0

我得到了我想要的結果。我做了以下修改:

清單文件:

<activity 
      android:name=".SplashScreenActivity" 
      android:launchMode="singleTask" 
      android:screenOrientation="portrait" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
<activity 
      android:name=".MainActivity" 
      android:windowSoftInputMode="adjustResize|stateHidden" 
      android:screenOrientation="portrait" /> 


<activity 
      android:name=".MenuList" 
      android:windowSoftInputMode="adjustResize|stateHidden" 
      android:screenOrientation="portrait" /> 

我加入以下代碼SplashActivity:從`閃屏launchMode`:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) { 
      // Activity was brought to front and not created, 
      // Thus finishing this will get us to the last viewed activity 
      finish(); 
      return; 
     } 
//...rest of the code 
} 
相關問題