簡體   English   中英

關閉應用程序后,守護進程線程仍然存在

[英]Daemon Thread is still alive after closing the app

我只是在測試一個幾乎空的android項目

我在主活動中創建了一個守護程序線程。

啟動該應用程序,然后按手機上的后退按鈕以關閉該應用程序。

但是守護進程線程永遠不會死。

Daemon Thread與一個空的JAVA PROJECT一起工作得很好。

但是使用android則無法正常工作。

我搜索了幾個小時的解決方案,但只有這個。

守護程序線程僅在有非守護程序線程在運行時才運行。 當最后一個非守護程序線程結束時,運行時將退出。 這通常與具有UI的應用程序無關。

有誰知道如何解決這個問題?

PS。 我不是通過按硬件后退按鈕而是通過按“應用程序信息”中的“強制停止”按鈕來停止應用程序的,因此應用程序和線程都消失了!

我首先從android開發的一些示例代碼中學到了Daemon Thread。

但是沒有人提及我的經歷。

android開發人員是否只相信Daemon Threads肯定會被殺死?

但是守護進程線程永遠不會死。

大概您沒有cancel()線程。 您需要在適當的時候這樣做。

但是使用android則無法正常工作。

它工作正常。 通過閱讀引用的段落可以看出它的作用與Java中的作用相同。 區別在於您的進程有多長時間以及該進程中的線程(Android進程除您派生的線程外還有其他線程)。

有誰知道如何解決這個問題?

在適當的時候在線程上調用cancel()

按下返回按鈕不會關閉應用程序(假設關閉意味着進程終止)。 這僅完成一項活動,但進程仍在運行。 為了達到期望的行為,您可以使用例如。 AsyncTask並從您的Activity的適當回調中調用cancel() ,例如。 如果您確實對按下后退按鈕感興趣,請在onDestroy()onBackPressed()中。

道歉,指出可能的基本要領,但要解決您的問題,請確保在關閉后確保其未在任務管理器中運行(ctrl + alt + delete)。讓任務管理器與守護程序一起運行,然后在守護程序關閉期間觀察發生的情況和在任務管理器中關閉后,因為它可能正在根據daemon中的settings-check設置來備份文件...。或者您已使用ExecutorService在Java中以Daemon的身份運行,在這種情況下,這將防止您的程序關閉,請參見此處ExecutorService-10個提示和技巧

Java應用程序進程在Windows和高速緩存的線程池上掛起

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM