2012-07-30 229 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