2012-07-17 174 views
0

這裏很奇怪的事情。Android Switched啓動活動:舊的啓動活動仍然表現如此

我最初有一項活動是啓動活動(活動A)。它有與其相關的標籤android:launchMode="singleTask"。沒問題。我的要求已更改,現在我正在將活動B作爲啓動活動。我複製了意圖過濾器,將名稱更改爲「.ActivityB」,並且我也將啓動模式標記移動了過來。

它似乎工作正常;當我啓動應用程序時,我轉到活動B.但是,當我從活動B轉到活動A,然後單擊後退按鈕時,應用程序退出並不會重新打開(如果我沒有啓動模式標記,它將重新打開。 )

另一個例子。如果我從活動A到活動B到活動A到活動B,一切都很好。當我點擊回到活動A(如預期的),但是當我再次點擊回到活動A的先前實例時(呃哦),然後再次點擊並退出應用程序。兩次都跳過活動B.

我清楚地忽略了一些東西,但我無法弄清楚什麼。我沒有重寫任何後退按鈕功能,並且在我切換啓動活動之前,所有工作都完美無缺。

編輯 以下是從我的表現摘錄的任何變化

<activity android:name=".ActivityA" android:windowSoftInputMode="stateHidden" android:label="@string/app_name" android:launchMode="singleTask"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name="ActivityB"></activity> 

這裏之前,變更後的摘錄

<activity android:name=".ActivityB" android:windowSoftInputMode="stateHidden" android:label="@string/app_name" android:launchMode="singleTask"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name="ActivityA"></activity> 
+0

您是否複製或_move_意向過濾器?不知道如果您有兩項活動,並且在電子郵件上使用啓動意圖過濾器會發生什麼情況 – Russ 2012-07-17 03:26:58

+0

否,請參閱編輯,另外我聽說您實際上可以將兩項活動聲明爲啓動活動(也許我聽錯了)。我不知道那是什麼.. – Sababado 2012-07-17 03:44:05

回答

1

聽起來活動B越來越finish()叫什麼。我建議在OnCreateOnPauseOnResumeOnResumeOnDestroy中加入一些日誌語句,這樣您就可以監控活動B的生命。它是一個高地活動(只能有1個),因此您不必擔心創建多個實例。您也可以查看/覆蓋onNewIntent並在那裏放置一些日誌記錄調用。

不是一個真正的答案,而是在開始活動A後或者在活動B在後臺進行並且您已經忘記它時,甜甜圈或甜甜圈將某個人撥打finish()電話。

如果情況並非如此,我會對活動B如何/何時死亡感興趣。通常,如果它在返回時出現一些錯誤而停止,則Android會向您發出咆哮,但由於您沒有提及我猜測它不是。

+0

如果我可以送你甜甜圈,我會。最後一次加法你已經死了。本來我是_finishing_活動B,當它回到活動A(家庭活動)時,因爲活動B不再需要任何東西,所以我想我會完成它並釋放一些資源。 – Sababado 2012-07-17 03:56:40

+0

我更喜歡實際上的美元:D – Russ 2012-07-17 04:02:40