2011-11-15 36 views
1

應用的主要活動是TabActivity包含一些OneActivity的Android單活動

這是需要從應用程序的其他部分調用OneActivity沒有創造它的另一個實例, 只是打電話的的onResume()一個位於TabActivity

嘗試設置不同launchMode( 「singleTop」, 「singleTask」, 「singleInstance」),並設置爲意圖的標誌:

intent.setAction(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER);

如何做到這一點不創建一個新的活動實例?

+0

將您需要調用的代碼拉入靜態方法。然後使用OneActivity.yourMethod()調用它; – dymmeh

回答

4

試試CLEAR_TOP標誌。我刪除活動堆棧中的所有活動,因此它應該解決您的目的。

Intent i = new Intent(context, YourSingleInstanceActivityName.class); 
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(i); 
+0

謝謝,我設置了您爲此意圖和另一個意見建議的標誌: intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 然後我爲singleInstanceActivity設置launchMode「sinleTop」 當我將SingleInstanceActivity設置爲MAIN時,它按照我的需要定義,但是當我將它放在TabActivity中並使此TabActivity爲主時,它開始再次創建SingleInstanceActivity的新實例。 – maryana