2017-06-19 8 views
1

My Launcherのクラス名が「SplashScreen」です。私は2つのアクティビティ "MainActivity"と "MenuList"を持っています。ユーザーがアプリを開くと、SplashScreenアクティビティが開始されます。スプラッシュスクリーンアクティビティは、MainActivityを検証して開始します。 MainActivity ScreenのボタンをクリックしてMenuList Activityを開き、MenuList ActivityのHomeボタンをクリックします。ユーザーがアプリケーションを開くと、MenuListアクティビティが直接開きます。私は以下のリンクに記載されているように変更を加えました。 MainActivityでユーザーがホームボタンを押すとうまくいきます。 MenuListアクティビティでホームボタンを押したときには機能しません。私を助けてください。デバイスのホームキーを押した後、アプリアイコンの最近のアクティビティを開く

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

が両方 'アンドロイドを除去'。また、リンクされた答えから追加したファンキーなコードを削除します。あなたはそれを必要としません。あなたが望む動作は、標準的なAndroidの動作です。 –

答えて

0

SplashActivityの要素からandroid:clearTaskOnLaunch="true"を削除します。

実際には、MainActivityでもこのフラグは設定されていません。アプリケーションに戻るたびに、タスクのスタックがクリアされ、SplashActivityが起動されます。

+0

私はSplashActivityの下のコードを追加しました。 MainActivityのために正常に動作しています protected void onCreate(savedBundle savedInstanceState){ super.onCreate(savedInstanceState); if((getIntent()。getFlags()&Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT)!{ //アクティビティが前面に表示され、作成されていない、 //これで最後に表示されたアクティビティが完了します finish ); リターン; } //通常のアクティビティ作成コード... } –

+0

ありがとうございました。それは今働いている。 SplashActivity –

+0

@SrikanthReddyRamidiからアンドロイド: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" /> 

IはSplashActivityのコードの下に追加しました:スプラッシュ `からlaunchMode`:clearTaskOnLaunch`と`アンドロイド:

@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 
} 
関連する問題