Android Asynctask vs Runnable vs timertask vs Service

时间:2010-11-30 11:11:28

标签: android service android-asynctask runnable timertask

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

我想运行一个每5秒运行一次的应用程序,在内存完成时清除内存,以及当cpu处于待机模式时,您可以运行该应用程序。因此应用程序不受唤醒锁定。

此致

沙夫卡特

1 个答案:

答案 0 :(得分:31)

前三个之间的区别仅在于为您完成的工作量。 Service fundamental Android application component

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

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

TimerTask 是标准Java的一部分,可用于某些(Runnable)代码的延迟或重复执行。它的用途是discouraged on Android。您可以使用处理程序。

服务可以用作Android应用程序中独立且无UI的部分。它可以运行并创建自己的线程,可以通过 AlarmManager 为UI或Intent启动。

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

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

你问题的最后一部分我真的不明白,所以请详细说明你想要完成的事情。