2010-07-04 118 views

回答

2

你可以調用完成()活性的方法,因爲這樣:

@Override 
    protected void onStop() { 
     finish(); 
     super.onStop(); 
    } 

所以,這樣當你按下home鍵或背出應用完全的,它應該結束它。

+1

這並不能阻止你自己創建的任何線程。 – CommonsWare 2010-07-04 13:29:48

+0

我知道,但根據我的理解,他只是希望應用程序在按下主屏幕/後退按鈕時關閉,而不是坐在背景中。 如果我誤解了,對不起。 – xil3 2010-07-04 13:37:17

+0

我剛剛收到udp數據,因爲我使用線程。當我回擊按鈕時,我的應用程序視覺被關閉,但它在接到後面的按鈕後收到數據。爲此我問這個。謝謝你的回覆 – Sumi 2010-07-04 16:50:06

2

最好的解決方案是不要自己創建線程。如果後臺線程只是做了一些工作,請考慮使用AsyncTask而不是您自己的線程。或者,如果這是一項服務,請考慮使用IntentService。否則,我希望你的後臺線程阻塞了某些東西(例如,等待一個套接字,等待LinkedBlockingQueue)。在這種情況下,您可以通過對阻塞的內容進行處理來終止該線程(例如,關閉套接字,在LinkedBlockingQueue上發送消息以告知線程脫離其工作循環)。

+0

你假設它是某種東西比現在複雜得多。 你怎麼知道他正在創建一個線程開始? – xil3 2010-07-04 13:38:31

+2

@ xil3:問題寫得不好。我們都可能是錯的,而OP是指從他的襯衫中脫出的線。我猜測,自OP詢問一個線程後,OP創建了一個 - 否則,我不知道OP爲什麼會認爲他需要停止某個線程。 – CommonsWare 2010-07-04 14:11:58

相關問題