Android Asynctask vs Runnable vs timertask vs Service

这些方法(类)有什么区别?

我想运行一个每5秒运行一次的应用程序,清理完成时的内存以及CPU处于待机模式时,您可以运行该应用程序。 这样的应用程序不是绑定到wakelock。

问候,

沙夫卡特

Solutions Collecting From Web of "Android Asynctask vs Runnable vs timertask vs Service"

前三者之间的区别仅仅是为你完成的工作量。 而一个服务是一个基本的Android应用程序组件 。

AsyncTask作为一个便利的类,用于在新线程上做一些工作,并在完成时使用它所调用的线程(通常是UI线程)使用结果。 这只是一个使用几个runnables的包装器,但它处理了创build线程和处理线程间消息传递的所有复杂性。

Runnable接口是Java线程的核心。 Runnable接口应该由其实例旨在由线程执行的任何类来实现。

TimerTask是标准Java的一部分,可用于某些(Runnable)代码的延迟或重复执行。 这是使用在Android上不鼓励 。 您可以使用处理程序。

一个服务可以作为你的Android应用程序的一个独立的和无UI的部分。 它可以运行并创build自己的线程,例如可以通过AlarmManager启动UI或Intent。

它想你想要的是一个服务,它创build它自己的线程,并做一些工作。 当工作完成后,当垃圾收集器启动时,内存将在Android上被释放,这是你不能控制的,这是一件好事。

AlarmManager允许您以指定的时间间隔广播Intents,甚至允许控制唤醒设备。 您只需在您的服务中定义一个BroadcastReceiver并在清单中声明它。

你的问题的最后一部分我不太了解,所以请澄清一下你试图完成的事情。