2012-01-08 69 views

回答

4
Intent intent = new Intent(activity1.this, activity2.class); 
intent .setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
startActivity(intent); 
0

這是一回事。 Android操作系統不會創建兩個不同版本的活動,它與已經創建的活動一起工作。

+0

沒有完成(),它會創造無限量的相同活動,這是促使我使用面漆()...但我可以有老年活動在一個開放already.launch新活動意圖在新的活動結束,並將有多個相同的活動開放... – David 2012-01-08 15:34:21

+0

@David,startActivity()意味着調用onStart方法,而不是創建 – 2012-01-08 15:35:57

+0

由於更多的請解釋,我沿着.. – David 2012-01-08 15:47:06

0

真正簡單:

finish(); 

如果你想選擇在堆棧中已經存在的活動,而不是簡單地將最新的打開,這將是更加複雜的,我不知道你是否能修改普通應用流程

+0

在我的第一(主要)活動/課堂上有一些理由,當我從其他活動中使用意向時,它會以相同佈局/活動中的兩個開放..任何想法? – David 2012-01-08 15:37:43

0

添加此

FLAG_ACTIVITY_REORDER_TO_FRONT to your Intent you use with startActivity() . 

同時刪除完成()

+0

Intent.FLAG_ACTIVITY_REORDER_TO_FRONT(這裏是什麼?); ?? – David 2012-01-08 15:59:41

+0

沒有什麼去那裏你只是爲這樣的intent設置標誌.. intent.FLAG_ACTIVITY_REORDER_TO_FRONT; – 2012-01-08 17:17:37

0

如果我收到您的信息,您需要使用Intent.FLAG_ACTIVITY_REORDER_TO_FRONT標誌。在這種情況下,您的活動(如果它是之前創建的)將被帶到最前面。作爲documentation states

如果)傳遞給Context.startActivity(一個Intent設置, 此標誌將導致啓動的活動被帶到 其任務的歷史堆棧的前方,如果它已經在運行。

+0

Intent.FLAG_ACTIVITY_REORDER_TO_FRONT(this); ? ); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); – David 2012-01-08 15:58:28

+0

第二個選項。像:'Intent preferencesIntent = new Intent(this,Preferences.class); preferencesIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); startActivity(preferencesIntent);' – ai212983 2012-01-08 16:19:25