我在這個主題上看到了一些貼子,但沒有一個有滿意的答案。Android工作線程持續多久?
假設我從我的主(一次性)Activity
,在其onCreate()
方法中啓動一個工作線程。然後我打電話finish()
導致Activity
終止。
此時,它所屬的任務被破壞(因爲其中不再有任何Activity
)。應用程序(以及運行它的進程)可能會繼續存在,但是,以空的「骨架」形式存在,以便在需要時可以快速重新啓動它(儘管它很容易被系統殺死)。
假設上述內容是正確的 - 何時工作者線程被殺害?只有在系統積極破壞過程時纔會被殺死?
在我的情況下,我的工作線程作爲藍牙連接的偵聽器存在;當收到時,它會再次啓動所需的Activity
。在這種情況下,沒有主動運行的組件(Activity
,Service
,ContentProvider
或BroadcastReceiver
)。在我看來,這應該工作,除了有什麼是殺死我的工作線程。
我知道我可以通過使用背景Service
來做到這一點(並減少疼痛)。但是,我很好奇爲什麼這不起作用。
感謝, 巴里
我相信線程只會在Linux進程被破壞時自動終止。 – Enzokie
_「在我看來,這應該工作,但有些事情是殺了我的工作線程」 _這隻能意味着[系統終止應用程序(http://stackoverflow.com/questions/34463069/can-android -kill-MY-APP-而-IT-是,在最中間的一環實施)。 _「只有在系統主動破壞進程時纔會被終止?」_正確(或者如果'run()'方法返回)。 – Onik
同意。問題就變成了,這個過程何時被殺死?我的猜測是,當沒有更多的運行組件時它會被殺死,但我沒有看到明確記錄在任何地方。下面是我對Oleg的BroadcastReceiver響應的迴應。 –