- 浏览: 559712 次
- 性别:
- 来自: 青岛
文章分类
最新评论
-
myworkfirst:
这个mShowing是哪里的定义的? 有没有完整的例子
通过反射重新设置设置Dialog -
mchaoliu:
楼主,这个方法是在哪调用呢?
修改快速滑动滑块的图片为新浪微博滑块样式 -
fxiaozj:
楼主,这个方法是在哪调用呢?
修改快速滑动滑块的图片为新浪微博滑块样式 -
yun2223:
感谢一下,把gen 添加到source 以及检查一下 其他路 ...
gen already exists but is not a source folder -
flyingsir_zw:
解决方法: 1. 右键点击工程,选择 "Proper ...
gen already exists but is not a source folder
AlarmManager的使用机制有的称呼为全局定时器,有的称呼为闹钟。通过对它的使用,个人觉得叫全局定时器比较合适,其
实它的作用和Timer有点相似。都有两种相似的用法:(1)在指定时长后执行某项操作(2)周期性的执行某项操作。
AlarmManager对象配合Intent使用,可以定时的开启一个Activity,发送一个BroadCast,或者开启一个Service.
下面的代码详细的介绍了两种定时方式的使用:
(1)在指定时长后执行某项操作:
MainAct.java:
public class MainAct extends Activity { Toast mToast; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btn = (Button)findViewById(R.id.btn); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent("oneshot"); PendingIntent pintent = PendingIntent.getBroadcast(MainAct.this, 0, intent, 0); //根据传入的NAME来取得对应的Object,然后转换成相应的服务对象 AlarmManager am = (AlarmManager)MainAct.this.getSystemService(ALARM_SERVICE); Calendar canlender = Calendar.getInstance();//获取日历的实例 canlender.setTimeInMillis(System.currentTimeMillis());// 代表当前时间的日历 canlender.add(canlender.SECOND, 30);// 将时间设置为现在的30s以后 (定时时间) //设置并启动定时器 am.set(AlarmManager.RTC_WAKEUP, canlender.getTimeInMillis(), pintent); if (mToast != null) { mToast.cancel(); } mToast = Toast.makeText(MainAct.this, "one shot alarm will go off in 30 seconds.", Toast.LENGTH_LONG); //弹出Toast,用于提示定时任务已经开启 mToast.show(); } }); } }
清单文件:
<application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".MainAct" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name=".OneShotAlarm"> <intent-filter> <action android:name="oneshot"/> </intent-filter> </receiver> </application>
OneShotAlarm.java:
public class OneShotAlarm extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, R.string.one_shot_received, Toast.LENGTH_SHORT).show(); } }
(2)周期性的执行某项操作
start repeating AlarmManager:
Button btn1 = (Button)findViewById(R.id.btn1); btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent("repeating"); PendingIntent sender = PendingIntent.getBroadcast(MainAct.this, 0, intent, 0); // We want the alarm to go off 30 seconds from now. //系统启动到目前为止的时间 long firstTime = SystemClock.elapsedRealtime(); firstTime += 15*1000; // Schedule the alarm! AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); //public void setRepeating (int type, long triggerAtTime, long interval, PendingIntent operation) //以15秒一个周期发送广播... am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, 15*1000, sender); // Tell the user about what we did. if (mToast != null) { mToast.cancel(); } mToast = Toast.makeText(MainAct.this, "已启动周期性计时器~", Toast.LENGTH_LONG); mToast.show(); } });
stop repeating Alarm:
Button btn2 = (Button)findViewById(R.id.btn2); btn2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent("repeating"); PendingIntent sender = PendingIntent.getBroadcast(MainAct.this, 0, intent, 0); AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); am.cancel(sender); // Tell the user about what we did. if (mToast != null) { mToast.cancel(); } mToast = Toast.makeText(MainAct.this, "alarm canceled", Toast.LENGTH_LONG); mToast.show(); } });
发表评论
-
Android中asset文件夹和raw文件夹区别【转】
2013-05-02 08:45 1234res/raw和assets的相同点 ... -
判断android系统的版本和package是否存在【转】
2013-04-27 14:46 27821.判断android系统的版本: publi ... -
startActivityForResult 不满足触发条件就返回的检测
2013-04-25 19:26 2047在android开发中,当不满足触发条件就按返 ... -
EditText 多行显示
2013-04-25 19:15 1756EditText 多行显示: <EditText a ... -
android 数据库导入导出
2013-04-25 15:30 3834方法1.在手机已经获得root权限的前提下(真机如果 ... -
Android使用尺寸资源 dimens
2013-04-25 13:42 6535有时候项目需要修改widget的控件的距离相关属性,只需要 ... -
checkbox 设定文字和选框之间的距离及自定义样式
2013-04-22 17:36 16057改变checkbox默认的文字与选框之间的距离两种方案,刚 ... -
解决 Eclipse 导入安卓项目 No projects are found to import
2013-04-21 10:50 6658在Eclipse里面导入已有的例子的时候,有 ... -
Android开发之Intent.Action
2013-04-19 11:41 0111 -
gen already exists but is not a source folder
2013-04-19 09:21 26543遇到android项目导入出现后重复空包等错误,往往是 ... -
[转]跟 Task 有关的 Intent对象中设置的Flag
2013-04-18 21:38 1256FLAG_ACTIVITY_BROUGHT_TO_FRON ... -
Activity 的Task与Intent FLAG
2013-04-18 21:22 4274Task是包含一系列Activity的堆栈, 遵循先进后出 ... -
[转] Tools之FindBugs
2013-04-14 17:27 9111) 安装 Help->SoftWare Update ... -
项目加入第三方NDK遇到的错误
2013-04-14 14:49 1030添加了jar包后,运行程序报 findLibrary ... -
Scrollview中动态添加widget不能滚动的为题
2013-04-14 09:48 4276在Scrollview中使用了动态添加控件,或者Scrol ... -
[转] finally块的问题(finally block does not complete normally)
2013-04-14 09:20 905当finall块中包含return语句时,Eclipse会给 ... -
Use a layout_width of 0dip instead of fill_parent for better performance
2013-04-13 23:45 3191安装了最新的ATD 18之后,新加的Lint Warnin ... -
instanceof
2013-01-29 14:19 953instanceof是Java的一个二元操作符,和==,&g ... -
android 对dp单位的理解
2013-01-08 19:55 2816什么是dp?dp就是dip,d ... -
handler简介
2012-12-15 02:38 0Handler在android里负责发送和处理消息。它的 ...
相关推荐
**Android 6.0 API Demos详解** Android 6.0 API Demos 是一个官方提供的示例代码集合,它展示了Android 6.0 (Marshmallow) SDK中的各种API功能和用法。这些示例旨在帮助开发者更好地理解和学习如何在实际应用中...
《ApiDemos示例源码解析》 ApiDemos是Android平台提供的一款示例应用,它包含了Android SDK中的各种API功能展示,对于开发者来说,这是一个非常宝贵的资源库,可以帮助我们深入理解和学习Android系统的API用法。...
《深入探索Android API Demos:最新实践与技术解析》 Android API Demos是Google官方提供的一款用于展示Android SDK中各种API功能和用法的应用程序,它涵盖了从基础控件到高级特性的全方位示例,是开发者学习...
《Android ApiDemos apk:深入理解Android应用开发的实践指南》 Android ApiDemos apk是Android开发者们熟悉的一个示例程序,它包含了Android SDK中的各种API功能演示,为开发者提供了丰富的学习资源。这个应用程序...
ApiDemos 6.0
《Android 8.1版本ApiDemos源码详解:深入理解API使用实例》 在Android开发领域,理解和熟练运用各种API是提升技能的关键步骤。"8.1版本ApiDemos源码"为开发者提供了一个宝贵的资源,它包含了Android 8.1系统中各种...
- **兼容性**:随着Android版本的更新,ApiDemos也会随之更新,展示新版本API的使用,帮助开发者适应不同Android版本的变化。 6. **社区贡献**: - **开源文化**:ApiDemos作为开源项目,鼓励开发者贡献自己的...
《Android ApiDemos详解——揭示Android开发的奥秘》 Android ApiDemos是Android开发者学习和探索平台功能的重要资源库,它集成了Android SDK中的各种控件、绘图技术以及四大组件(Activity、Service、...
API Demos 是 Google 为了 Android 开发者所提供的一个 Android API 合集,其中包含了很多的 API 范例,同时遵循了良好的代码规范,是一个值得开发者研究和学习的典型。android的ApiDemos,需要解压缩后使用。
《安卓ApiDemos详解——掌握Android API实践精髓》 安卓ApiDemos,作为一个开发者们耳熟能详的项目,它是Android SDK中一个重要的组成部分,它提供了丰富的API实例,旨在帮助开发者深入理解和掌握Android系统的各种...
从官方预览包里提取的Android6.0 ApiDemos.apk,方便安装在真机上查看实例的实际效果。
**Android ApiDemos详解** ApiDemos是Android官方提供的一款示例应用,它包含了Android SDK中的各种API功能演示,帮助开发者了解和学习Android系统提供的各种API接口和功能。这个"Android ApiDemos不报错版本"是...
《Android API 19 ApiDemos详解》 在Android开发领域,API Demos是一个非常重要的学习资源,它包含了Android SDK中的各种API示例代码,帮助开发者深入理解和掌握Android平台的功能特性。本文将针对API Level 19...
Android 5.1的ApiDemos安装包
《Android API Demos详解》 Android API Demos是一款由谷歌官方提供的开源项目,它包含了大量Android SDK中的API示例代码,旨在帮助开发者更好地理解和学习如何在实际应用中使用Android的各种功能和API。该项目覆盖...
android6.0 模拟器里提取的, 可以直接安装到手机上使用
**Android ApiDemos 2.1 知识点详解** `Android ApiDemos 2.1` 是Android SDK中一个非常重要的示例程序,它包含了Android API的各种功能和组件的演示,是开发者学习和理解Android系统API的重要资源。这个版本对应的...
最新版ApiDemos Android SDK 中带有很多例子,其中ApiDemo 详细介绍了Android 平台主要API,分成了 · App · Content · Graphics · Media · OS · Text · Views 几个大类,每个大类又分为几个小类,...
《Android(1.5)APIDemos梳理》 在Android开发领域,APIDemos是官方提供的一款用于展示Android API功能的示例应用。这个版本基于Android 1.5,虽然现在已经较旧,但它仍然是理解早期Android系统API工作原理的重要...