我正在编写一个需要每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
这是我目前为止写的:
-
活动。onCreate启动服务
-
onCreate方法从已启动的服务设置报警参数PendingIntent(尚未启动)
-
onStartCommand的启动服务创建报警和创建AsyncTask(与执行)
-
AsynchTask。doInBackground做一些计算,如果阈值已经通过,它广播一个新的意图,并试图停止报警,如果阈值没有通过,那么什么都不做
-
从AsyncTask的onPostExecute中停止服务
-
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(),它会停止。