2016-03-29 9 views
0

私はアクティビティAを持っています。私はツールバーアイテムを押すと、startActivity(intent)を使ってアクティビティBを開始します。私は戻るボタンまたは上のナビゲーションアイコンを押すたびに、私のアプリを閉じます。私はそれが私の親アクティビティでlaunchMode = "singleTop"を使用しているからだと信じています(私は検索ビューと検索可能な設定を持っているので、これは私の検索のアクティビティの別のインスタンスを開始したくない)。だから問題は:どのように私のアプリを閉じずにナビゲーションと戻るボタンの両方を使用して、子アクティビティ(B)から親アクティビティ(A)に戻ることができますか?私はそれについて調べて、onNewIntent()について何かを見つけました。これが私の解決策であれば、どうすれば適切に使うべきですか?ここで上向きナビゲーションとシングルトップ起動モード

 <activity 
      android:name="com.example.fernando.inspectionrover.MainActivity" 
      android:screenOrientation="landscape"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <action android:name="android.intent.action.SEARCH" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
      <meta-data 
       android:name="android.app.searchable" 
       android:resource="@xml/searchable" /> 
     </activity> 
     <activity 
      android:name="com.example.fernando.inspectionrover.BluetoothSettingsActivity" 
      android:parentActivityName="com.example.fernando.inspectionrover.MainActivity" 
      android:screenOrientation="landscape"> 
      <meta-data 
       android:name="android.support.PARENT_ACTIVITY" 
       android:value="com.example.fernando.inspectionrover.MainActivity" /> 

私の新しい活動を開始する方法である:ここで


は私のマニフェストファイルがある

switch (id) { 
      case R.id.bluetoothActivity: 
       Intent switchActivity = new Intent(this, BluetoothSettingsActivity.class); 
       startActivity(switchActivity); 
       Log.i(LIFE_CYCLE, "Switching from " + getLocalClassName() + " to Bluetooth Setting Activity"); 
       finish(); 
       break; 
     } 

答えて

2

私は一番簡単な答えを見つけているかもしれませんが、

+0

これはまさに問題です:p –

+0

あなたのupvoteがあなたのアップポットの評判を与えました。; p –

2

Single Topは、あなたがすでにオンになっているアクティビティを起動した場合ことを意味し上に戻ると、もう一度作成されることはありません。

新しいナビゲーションを開始した直後にfinish()に電話をかけているため、バックナビゲーションでアプリを閉じる理由があります。つまり、そのアクティビティがもう必要なくなり、スタックから削除されます。アクティビティBに戻ると、何も戻ってこないのでアプリが終了します(finish()と覚えていますか?)

関連する問題