b2c信息网

您现在的位置是:首页 > 热点事件 > 正文

热点事件

android闹铃功能源码(android闹钟实现)

hacker2022-06-11 09:11:22热点事件77
本文目录一览:1、android代码闹钟实现

本文目录一览:

android 代码闹钟实现

不需要activity, 你用Dialog就行.

也不需要另找声音文件,你用系统自带的铃声就行.

闹钟怎么设置可以看我在eoe论坛的贴子:

android开发,闹钟问题,想设置一个每天8点的闹钟,如何才能解决立即启动这个问题,附代码:

你设置的时间已经过了。就是说,你的这句话有逻辑问题。

if(calendar.getTimeInMillis() calendar.getTimeInMillis()){

calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);

}

你是想写成这样吧?

if(System.currentTimeMills() calendar.getTimeInMillis()){...}

还有一个地方你应该注意一下。

最前面一句最好这么写。

Calendar calendar = Calendar.getInstance(Locale.getDefault());

求安卓闹钟原理,求详细

请参考下面的这篇【android闹钟实现原理】文章,也许对你有启示。

我们来看看新建闹钟到闹钟响铃的步骤:

1、新建一个闹钟:

01

// 获得AlarmManager实例

02

final AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);

03

04

// 实例化Intent

05

Intent intent = new Intent();

06

// 设置Intent action属性

07

intent.setAction("com.test.BC_ACTION");

08

intent.putExtra("msg", "该去开会啦!");

09

// 实例化PendingIntent

10

final PendingIntent pi = PendingIntent.getBroadcast(MainActivity.this, 0,

11

intent, 0);

12

// 获得系统时间

13

final long time = System.currentTimeMillis();

14

am.set(AlarmManager.RTC_WAKEUP, time+5000, sender);//5秒后闹铃

15

16

// 设置按钮单击事件

17

setBtn.setOnClickListener(new OnClickListener() {

18

@Override

19

public void onClick(View v) {

20

// 重复提示,从当前时间开始,间隔5秒

21

am.setRepeating(AlarmManager.RTC_WAKEUP, time,

22

5 * 1000, pi);

23

}

24

});

在AndroidMainfest.xml里注册广播接收器

1

receiver android:name="MyReceiver"

2

intent-filter

3

action android:name="com.test.BC_ACTION"/

4

/intent-filter

5

/receiver

2、定义一个AlarmReceiver extends BroadcastReceiver接收广播,并弹出闹钟提醒视图。

上面用到一个AlarmManage,我们分别来看看它的处理闹钟流程和作用及例子。

处理闹钟流程:对应AlarmManage有一个AlarmManagerServie服务程序,该服务程序才是正真提供闹铃服务的,它主要遍历闹铃列表并设置即将触发的闹铃给闹铃设备,并且一直监听闹铃设备,一旦有闹铃触发或者是闹铃事件发生,AlarmManagerServie服务程序就会遍历闹铃列表找到相应的注册闹铃并发出广播。

作用及例子:AlarmManage中文名闹钟,或者叫做“全局定时器”更合适,它的作用和Timer类似,有两种使用方法:1、在特定时长后(特定时间)执行某任务;2、周期性的执行某任务,AlarmManager对象配合Intent使用,可以定时的开启一个Activity,发送一个BroadCast,或者开启一个Service.

(1)在指定时长后(特定时间)执行某项操作

01

//操作:发送一个广播,广播接收后Toast提示定时操作完成

02

Intent intent =new Intent(Main.this, alarmreceiver.class);

03

intent.setAction("short");

04

PendingIntent sender=

05

PendingIntent.getBroadcast(Main.this, 0, intent, 0);

06

07

//设定一个五秒后的时间

08

Calendar calendar=Calendar.getInstance();

09

calendar.setTimeInMillis(System.currentTimeMillis());

10

calendar.add(Calendar.SECOND, 5);

11

12

AlarmManager alarm=(AlarmManager)getSystemService(ALARM_SERVICE);

13

alarm.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender);

14

//或者以下面方式简化

15

//alarm.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+5*1000, sender);

16

17

Toast.makeText(Main.this, "五秒后alarm开启", Toast.LENGTH_LONG).show();

(2)周期性的执行某项操作

01

Intent intent =new Intent(Main.this, alarmreceiver.class);

02

intent.setAction("repeating");

03

PendingIntent sender=PendingIntent

04

.getBroadcast(Main.this, 0, intent, 0);

05

06

//开始时间

07

long firstime=SystemClock.elapsedRealtime();

08

09

AlarmManager am=(AlarmManager)getSystemService(ALARM_SERVICE);

10

//5秒一个周期,不停的发送广播

11

am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP

12

, firstime, 5*1000, sender);

AlarmManager的取消:(其中需要注意的是取消的Intent必须与启动Intent保持绝对一致才能支持取消AlarmManager)

1

Intent intent =new Intent(Main.this, alarmreceiver.class);

2

intent.setAction("repeating");

3

PendingIntent sender=PendingIntent

4

.getBroadcast(Main.this, 0, intent, 0);

5

AlarmManager alarm=(AlarmManager)getSystemService(ALARM_SERVICE);

6

alarm.cancel(sender);

AlarmManager还将闹钟分为五种类型:

1

public static final int ELAPSED_REALTIME

//当系统进入睡眠状态时,这种类型的闹铃不会唤醒系统。直到系统下次被唤醒才传递它,该闹铃所用的时间是相对时间,是从系统启动后开始计时的,包括睡眠

时间,可以通过调用SystemClock.elapsedRealtime()获得。系统值是3 (0x00000003)。

1

public static final int ELAPSED_REALTIME_WAKEUP

//能唤醒系统,用法同ELAPSED_REALTIME,系统值是2 (0x00000002) 。

1

public static final int RTC

//当系统进入睡眠状态时,这种类型的闹铃不会唤醒系统。直到系统下次被唤醒才传递它,该闹铃所用的时间是绝对时间,所用时间是UTC时间,可以通过调用

System.currentTimeMillis()获得。系统值是1 (0x00000001) 。

1

public static final int RTC_WAKEUP

//能唤醒系统,用法同RTC类型,系统值为 0 (0x00000000) 。

1

Public static final int POWER_OFF_WAKEUP

//能唤醒系统,它是一种关机闹铃,就是说设备在关机状态下也可以唤醒系统,所以我们把它称之为关机闹铃。使用方法同RTC类型,系统值为4 (0x00000004)。

参考资料:

基于android的闹钟如何添加和删除

一、本课题要求:设计一个基于Android的闹钟的软件。

实现的功能有:能通过界面设置闹钟的启动条件建立后台服务进程,当满足触发条件时,闹钟响应相应事件。

二、需求分析

该课题实现在手机操作系统Android闹钟提醒功能,携带方便,使用起来灵活、快捷、省心,是一款实用的手机软件。“手机闹钟”可以在后台运行,且能和普通闹钟一样设置多个位置闹铃,有良好的人机交互界面,可对其编辑、启用或禁用,关键在于可以自定义设置取消闹钟的操作。

(1)系统体系结构包括:添加闹铃、设置时间、重复等,闹铃提醒方式,返回首页。

(2)用户界面设计

主页面

取消闹铃页面

三、代码设计

(1)

main.xml代码

解除闹铃代码

(2)代码分析

开发手机闹钟主要用到了AlarmManager类,AlarmManager类提供了访问系统定时服务的途径,开发人员可以在程序中设置某个应用程序在未来的某个时刻被执行。当AlarmManager定时时间到了之后,当初注册的Intent对象将会被系统广播,进而启动目标程序。注册的闹钟在设备睡眠的时候仍然会保留,可以选择性地设置是否唤醒设备,但是当设备关机和重启后,闹钟将会被清除。

在程序运行时当需要使用AlarmManager类时,可以通过Context对象的getSystemService(Context.ALARM_SERVICE)方法来获得AlarmManager对象。

闹钟使用的Demo:com.example.android.apis.app.AlarmController其中设定了两种闹钟,一种是一次性的,一种是重复的。

四、总结

在这个过程中,我学会了很多知识,比如Android环境的搭建和配置问题、Android的构架和基本组建等,同时我学会的最重要的一点是,要利用现有的资源去解决问题,在图书馆、在网络上寻找答案,也可以请教老师或与同学相互讨论。虽然,这个软件目前运行良好,但是我认为代码的健壮还很差,在整个工程的构思方面也不足,用户操作界面还不够灵活,这些问题还需要今后逐一解决。与此同时,这个软件还可以进一步扩展,例如通过Android Api获取位置信息,并在指定地点设置闹钟提醒等,使功能更加强大,带给用户更好的体验与便捷的生活服务。

android源码中闹钟源码在哪儿

首先 ,android studio中, 写出 你要找的 这个类. 点进去,会有 源码,如果没有源码,

右上角会有提示,

download src!

然后 只要你的 电脑 连着网,有vpn 就直接 下载下来了

当然你也可以选择 安装 本地源码

源码在 你看 那个类的 包名 路径

发表评论

评论列表

  • 温人眼趣(2022-06-11 18:45:30)回复取消回复

    t.putExtra("msg", "该去开会啦!");09 // 实例化PendingIntent10 final PendingIntent pi = PendingIntent.getBroadcast(MainActivit