2015-07-28 22 views
0

我遇到一個僅在發佈版本中出現的非常奇怪的問題。從前臺返回應用程序 - 默認活動已啓動(僅限發佈)

我的應用程序實現了一個啓動屏幕,它在1秒延遲後自行清除並啓動主要活動。啓動畫面在我的清單中用MAIN/LAUNCHER intent過濾器聲明。

調試應用程序時,一切都按預期工作(我使用的是Android Studio 1.3)。

然而,這裏是我在發行啓動應用程序會發生什麼:

  1. 啓動應用程序時,出現閃屏
  2. 1秒後,閃屏完成,並打開主活動 - 到目前爲止,好。
  3. 我打的home鍵,應用程序轉到後臺
  4. 調用應用程序後面 - 閃屏打開
  5. 1秒後,中,閃屏被刪除,主要業務是在其原來的狀態下打開。

如果我殺了應用程序並再次打開它,該錯誤消失,直到我重新安裝應用程序纔會再次出現。

我看着this的帖子,並在那裏實施瞭解決方法,似乎解決了這個問題,但我仍然非常在意這個錯誤,並想知道是否有其他人看到類似的東西最近發生了是非常古老的,並表明這個問題可能與日食有關)。

編輯

這是我加入到我的閃屏活動的代碼(從上面鏈接後):

public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 

     if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) 
     { 
      // call code which launches the main activity here 
      finish(); 
      return; 
     } 

正如我所說的,這增加的代碼去除問題,但我米試圖瞭解爲什麼這個問題發生在第一位?爲什麼這隻發生在發佈版本中,爲什麼只有在應用程序第一次安裝時纔會發生,並且一旦應用程序被終止並重新啓動,停止發生?

新活動開有以下意圖的標誌:FLAG_ACTIVITY_SINGLE_TOP & FLAG_ACTIVITY_CLEAR_TOP

這裏是我的清單的相關部分:

 <activity 
     android:name="com.my.app.SplashScreenController" 
     android:label="@string/app_name" 
     android:screenOrientation="portrait" 
     android:theme="@style/LightTheme"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

這是一個有點困難後這將打開確切的代碼接下來的活動,因爲我的應用程序邏輯有點複雜,下一個打開的活動很大程度上取決於內部應用程序狀態的變體&。

+0

你能粘貼啓動畫面和清單代碼?另外我想問一件事,你是否在從啓動畫面啓動意圖之前調用finish()? –

+0

在啓動下一個活動後立即在啓動畫面上調用finish()。 –

回答

0

對不起,但缺乏聲譽,我不能評論。 你可以添加一些代碼嗎?就像當你調用主頁面時,當你關閉啓動畫面和從你發佈的鏈接添加的代碼時? 它將使回覆更容易:)

編輯: 無論如何,我發現this後,並根據它,我想你可以使用

@Override 
protected void onPause() 
{ 
    super.onPause(); 
    startActivity(getIntent().addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)); 
} 

希望它幫助:)

相關問題