2012-05-31 59 views
0

我可以在當前活動背後開始活動嗎?我想通過我的服務更改家庭活動(啓動器),但當前的前臺活動已關閉。我怎麼解決這個問題?我可以更改活動堆棧嗎?當前活動背後的開始活動

回答

0

您無法在後臺啓動活動!

我也認爲你不能改變堆棧,但你可以做的是從你的服務中通過意圖啓動你想要的活動。在這種情況下,它應該感覺像是一個「開始活動」。

通過獲得當前活動的背景下:

Intent serviceStartActivity = new Intent(getBaseContext(), anyActivity.class); 
serviceStartActivity.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
getApplication().startActivity(serviceStartActivity); 
+0

BEHIHD當前活動的開始活動? – Leo

+0

你的大喊實際上幫助我理解......爲什麼你想在後臺開始活動?我沒有看到這個意義。這就是爲什麼我首先不明白你的問題... – Tschegewara

+0

我正在開發發射器切換器。更改屏幕方向時,此程序更改啓動程序。我可以通過intent更改啓動器,但是當前的前臺活動(用戶應用程序,而不是啓動器)已關閉。 – Leo

0

的activty在執行中,只要它是在視圖的頂部。 一旦另一項活動啓動,第一項活動暫停和/或停止。 所以,我認爲你不能在後臺啓動一個活動,或者如果這就是你的意思。

+0

是的,我想在後臺啓動一項活動。 – Leo

+0

好吧,但你不能:根據定義,活動是視圖之上的一個過程(所以不在後臺)。 也許你應該使用服務? –

1

嗯,這一切聽起來像滑稽的生意,但我想,這取決於是在前面的活動的複雜性,你可以嘗試以下方法:

  • 當前活動的保存狀態(如果相關你)
  • 完成當前活動
  • 沒有動畫啓動「背後」活動
  • 開始,我們沒有完成的動畫活動,恢復可見狀態

所有的一舉一動,並希望(圖形故障),這將提供你想要的感覺。儘管我只是出於純粹的好奇心而做到這一點。

+0

我無法快速切換活動,因爲用戶會看到屏幕閃爍。 – Leo

+0

然後變得富有創意。如果沒有動畫並在單個方法調用中執行上述操作,則閃爍可能是由於init的延遲。首先確保需要花費時間的任何事情都不在UI線程上運行,只在最後一秒同步。啓用根佈局元素上的位圖緩存位,捕獲位圖,並在重新初始化時將其繪製爲背景。 – dskinner