告警每5秒运行一次,AsyncTask和Service检查阈值



我正在编写一个需要每5秒做一些工作的应用程序,如果这些计算高于阈值,应该启动一个Intent,它将加载一个新的Activity(或者如果有可能,Activity将由进程本身启动)。

到目前为止,我正在采用Wrox的专业Android 2应用程序开发书中的方法,其中声明使用AlarmManager和AsyncTask来刷新数据。http://www.wrox.com/WileyCDA/WroxTitle/Professional-Android-2-Application-Development.productCd-0470565527,descCd-DOWNLOAD.html ->工程实例->第九章地震4

这是我目前为止写的:

  1. 活动。onCreate启动服务

  2. onCreate方法从已启动的服务设置报警参数PendingIntent(尚未启动)

  3. onStartCommand的启动服务创建报警和创建AsyncTask(与执行)

  4. AsynchTask。doInBackground做一些计算,如果阈值已经通过,它广播一个新的意图,并试图停止报警,如果阈值没有通过,那么什么都不做

  5. 从AsyncTask的onPostExecute中停止服务

  6. BroadcastReceiver的onReceive方法处理来自2)的PendingIntent并像这样启动服务:

    Intent starttent = new Intent(context, MyService.class);

    context.startService (startIntent);

现在警报还没有停止,我不太确定这是处理这种需求的最佳架构,您有什么经验可以分享吗?我知道其他选项,如IntentService,使用的处理程序,定时器,但这是一个干净的方式,但…它的性能高吗?致以最亲切的问候。吉尔勒莫。

看看java中的这个类

http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Thread.html

我想你可以用!!

使用PendingIntent让你启动闹钟,你可以在AlarmManager中调用cancel(),它会停止。

相关内容

  • 没有找到相关文章

最新更新