2010-09-01 90 views
1

我有兩個應用程序App-1 & App-2。 App-2有一個啓動App-1的按鈕。Android可以避免onCreate()被調用嗎?

需要的是爲具有如同以下內容: -

  1. 用戶啓動的App-1(使用發射器)&活動A,B & C被啓動&活性C在活動堆棧的頂部。
  2. 請注意,App-1的入口點是活動A.
  3. 用戶按下主頁鍵。
  4. 用戶然後啓動應用程序App-2。用戶選擇App-2中的按鈕啓動App-1。
  5. 在APP-2按鈕的onClick()具有下面的代碼: -

    意圖I =新意圖(); i.setAction(「com.x.y.z」); //解析爲App-1 的活動A i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); i.putExtra(「x」,「y」); startActivity(i);

步驟-4後,onCreate()活性的被稱爲這是很正常的。但是我希望Android能夠將整個活動堆棧帶到前臺,因爲App-1正在運行。&Android並沒有殺死它(如果我在步驟2之後啓動了App-1,這種行爲也是一樣)。

我想讓活動C顯示給用戶。

如果可以做到這一點,請幫助我。

我已經嘗試將活動A作爲singleTask & singleInstance。如果我這樣做,只有活動A被帶到前臺,這不是我想要的。

的App-1的明顯的片段看起來象下面這樣: -

<activity android:name=".aa.a" 

     android:configChanges="orientation|keyboardHidden|locale" 
     android:label="@string/app_name" 
     android:theme="@android:style/Theme.NoDisplay" 
     > 
      <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
      <intent-filter> 
       <action android:name="com.x.y.z" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 

</activity> 
+1

NO。你不能避免onCreate()被調用!你需要在你的活動流程中找到另一種方式。 – ankitjaininfo 2010-09-01 12:37:18

+0

感謝Ankit的迴應。我希望你已經完全閱讀這篇文章,但我同意它需要很多耐心和時間。我認爲這不是很難做到。開發人員可能希望採取這種行爲來儘量減少要編寫的代碼數量,以模仿相同的行爲。我不確定提供這樣的選擇有什麼困難(當然有一些可以理解的限制)。 – Shivaprasad 2010-09-07 08:58:50

回答

1

FLAG_ACTIVITY_NEW_TASK通知的Android開始一個新的任務;新任務不包含B & C,因此不要指望它們中的任何一個被顯示。 另外,FLAG_ACTIVITY_CLEAR_TOP刪除B & C,這與您想要的完全相反。

嘗試刪除兩個標誌。

相關問題