2015-12-18 26 views
2

我正在與3活動的應用程序工作。 Main和其他兩個,可以從Main開始。兩者都有一個工具欄後退按鈕,它通向Main,後者在Back棧上等待。發生在這種情況下 問題:問題與工具欄後退按鈕導致回到父活動

起價主要活動B。 - 離開應用到主屏幕 - 等待一段時間,做一些其他的東西,...(或力可關閉該應用在App-設置) - 通過使用應用程序 - 概述(應用程序中的活動重新啓動它重振B) - 按下工具欄後退按鈕 - >應用程序關閉。

在這一點上,我期待它回到Main,但事實並非如此。

清單:

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme"> 

    <!-- ACTIVITIES --> 
    <activity 
     android:name=".MainActivity" 
     android:configChanges="keyboardHidden|orientation|screenSize" 
     android:label="@string/app_name" 
     android:launchMode="singleInstance" 
     android:screenOrientation="portrait"> 

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

    <activity 
     android:name=".ReminderActivity" 
     android:label="Reminder" 
     android:launchMode="singleTask" 
     android:parentActivityName=".MainActivity" 
     android:screenOrientation="portrait"> 

     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="yyyy.yy.yyyy.MainActivity" /> 
    </activity> 

    <activity 
     android:name=".PreferencesActivity" 
     android:label="Preferences" 
     android:launchMode="singleTask" 
     android:parentActivityName=".MainActivity" 
     android:screenOrientation="portrait"> 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="yyyy.yy.yyyy.MainActivity" /> 
    </activity> 

    <!-- RECEIVERS --> 
    <receiver android:name="yyyy.yy.yyyy.StartupReceiver"> 
     <intent-filter> 
      <action android:name="android.intent.action.BOOT_COMPLETED" /> 
     </intent-filter> 
    </receiver> 

    <receiver android:name=".NotiDeactivateReceiver"></receiver> 

    <!-- ATTENTION: This was auto-generated to add Google Play services to your project for 
     App Indexing. See https://g.co/AppIndexing/AndroidStudio for more information. --> 
    <meta-data 
     android:name="com.google.android.gms.version" 
     android:value="@integer/google_play_services_version" /> 

</application> 

活動: 我用我在這裏找到的代碼在計算器

public void initToolbar() { 

    toolbar = (Toolbar) findViewById(R.id.toolbar2); 
    setSupportActionBar(toolbar); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 

    int id = item.getItemId(); 

    if (id == android.R.id.home) { 
     finish(); 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 

我也嘗試用NavUtils去 「向上」。同樣的效果。

我嘗試了一些其他應用程序與我的情況,我注意到,當他們踢出的內存(或我使用的應用程序的設置手動獲得殺害),他們重新啓動他們的主要活動。我重新啓動了我離開它的那一點,但可能沒有後退堆棧。

你能幫我弄清楚這裏有什麼問題嗎?

+0

你可以發佈,而其他兩項活動被宣佈 – SachinS

+0

這裏你調用finish()方法您的清單部分嘗試。菜單項中家庭的用途是什麼,請你清楚一下。 –

回答

3

在清單

android:launchMode="singleInstance" 

更換MainActivity的屬性

android:launchMode="singleTop" 
+0

有道理。當A是SingleInstance並且我從它啓動B時,B會打開一個新的Task。現在都進入背景並且都被系統殺死。當我通過多任務按鈕重新輸入B並按回時,它無處可去,因爲A在另一個不存在的任務中。我一回家就會嘗試一下。 – Eyntschl

+0

問題解決了,坦克你非常歡迎 – Eyntschl

+0

。 – SachinS

相關問題