2012-07-30 137 views
0

如何線程的優先級在Android的管理? (或者Android的線程策略是什麼?)GUI線程會被賦予更高的優先級,對吧?Android的線程優先級

我已經看到了創建單獨的線程,因爲finalize()氣餒清理(本地)資源的應用程序。然而,仍然有內存泄漏(或存儲效率低下),因爲清除線程沒有運行足夠頻繁。

一些其他應用程序,那些不使用finalize()忽視的建議,依靠終結清理資源。所以我想知道如何安排終結器線程?是釋放資源的可靠方式,無論是託管還是本地資源?

+0

這是這樣的職位,讓我想學ios 2012-07-30 02:19:01

+0

@馬丁詹姆斯爲什麼是這樣的? iOS中的線程策略是非常明確的嗎? – dacongy 2012-07-30 02:26:58

+0

不知道它只是使用一個單獨的線程來清理資源,(託管GC機制的ouside),好吧,有點奇怪的想法.. :) – 2012-07-30 03:06:01

回答

0

我會強烈建議您使用的AsyncTask在不同的線程做一些事情。的AsyncTask是非常容易使用,我會說,這是對Java的最大優勢之一。我真的很想念obj-c。

異步任務拿到方法

onPostExecute(){} 

中,你可以清除任何你想要的線程中完成後,它的工作。

http://labs.makemachine.net/2010/05/android-asynctask-example/

http://marakana.com/s/video_tutorial_android_application_development_asynctask_preferences_and_options_menu,257/index.html

鏈接有關的AsyncTask TUTS。

關於優先級:android中的線程是java中的線程,它們的優先級從0到10. 可以根據需要爲每個線程設置它們。

而關於

finalize(); 

應避免使用此方法。正如我已經說過的,你最好使用AsyncTask類而不是Thread。

+0

1.你是說finalize()是不是可靠的資源清理機制? 2.如何安排終結器線程? 3.我們如何表達「當這個特定的託管Java對象不可用時必須釋放這片本地資源」的語義? – dacongy 2012-08-01 17:51:05