我有一個主要活動,用戶從中開始幾個活動startActivityForResult
。 這可能是一個外部應用程序,如xing條形碼掃描儀或interview活動,如mapview或日曆等。避免破壞活動
問題是,通過執行startActivityForResult
我的主要活動已暫停,並可能由android系統終止。 Somtimes,當用戶在開始的活動中停留很長時間時,會發生這種情況,並且在關閉新活動後,主活動將被銷燬,並且不會調用OnActivityResult監聽器。
有沒有辦法告訴系統「不要銷燬這個暫停的活動」?
編輯:
的問題是有點複雜,我怕我在我的應用程序的整個achitecture犯了不少錯誤。我會盡量解釋我做了什麼:
我有一個主要活動(extends TabActivity
)和GlobalVars一個final public class GlobalVars
是存儲大量的變量或類,由項目如所有活動使用。 :
public static boolean system_initialized = false;
public static boolean system_Onforeground = true;
在
main.class OnCreate
方法
,我設置system_initialized到true
在OnResume
方法我設置Onforeground = true
,在設置Onforeground = false
和OnDestroy
設置initialized = false
如果我啓動應用程序system_initialized和Onforeground將是真實的,如果我開始ActivityforResult
初始化將保持爲真,但Onforeground將被設置爲false。
現在我有一個BroatcastReceiver,啓動android.intent.action.BOOT_COMPLETED
並初始化一個帶有服務的Alamrmmanager作爲pendingIntent。
現在我使用該服務來檢查每分鐘是否需要在主要活動中進行一些操作。如果發生操作,服務會檢查system_initialized = true(在GlobalVars中)是否啓動應用程序,否則服務將使用處理程序(在GlobalVars中)調用主活動中的Runnable。
這很好,如果主Activity正在運行,則可執行文件將被執行併發生某些事情,如果用戶啓動了ActivityforResult
服務意識到主要活動不在onForeground上並在後臺執行某些操作。但是,如果主要活動被破壞,服務將重新啓動主要活動,我不希望那^^我知道,很奇怪,但我不知道如何以其他方式實現我需要的東西。 ..