2010-01-22 71 views
1

我從我的Widget開始一個Activity,它應該啓動一個特殊的視圖。
但是,如果應用程序已經在運行(而不是後退按鈕),則Android會激活上次顯示的活動。
有沒有任何標誌或其他方法可以避免這種行爲?
關閉以前的活動在我的應用程序中不會有問題,沒有用戶輸入會丟失。
我嘗試了onStop()中的finish()方法,但在調用子活動(startActivityForResult)時也調用onStop,所以從那裏返回時什麼都不返回 - 應用程序將被關閉。如何在應用程序運行時執行活動?

回答

0

嘗試android:clearTaskOnLaunch="true"在包含「特殊視圖」的活動的清單中。

+0

不幸的是,這是行不通的。我甚至嘗試使用不同的「taskAffinity」,finishOnTaskLaunch,allowTaskReparenting,FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_RESET_TASK_IF_NEEDED。 (當然,FLAG_ACTIVITY_NEW_TASK是設置的,因爲應用程序可能沒有運行。) – 2010-01-22 13:01:19

1

我也有這個問題,並通過在我的每個活動聲明中使用android:launchMode="singleInstance"來解決它。

0

與FLAG_ACTIVITY_NEW_TASK和主要活動通話意圖增加:

機器人:launchMode = 「singleTask」 機器人:clearTaskOnLaunch = 「真」

在其他補充:

android:finishOnTaskLaunch="true" 

這種方式可以在後臺返回應用程序時關閉任何活動。