18

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

我想运行一个每 5 秒运行一次的应用程序,在它完成时清除内存并且当 cpu 处于待机模式时,你可以运行该应用程序。这样应用程序就不会绑定到唤醒锁。

问候,

沙夫卡特

4

1 回答 1

30

前三个之间的区别只是为您完成的工作量。而Service是一个基本的Android应用组件

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

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

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

Service 可以用作 Android 应用程序的独立且无 UI 的部分。它可以运行并创建自己的线程,并且可以为 UI 或通过例如AlarmManager使用 Intents 启动。

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

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

您问题的最后一部分我不太明白,所以请进一步说明您要完成的工作。

于 2011-08-14T10:09:20.670 回答