基于android系统的闹钟,基于Alarmmanager实现简单闹钟功能

本文实例为大家分享了Alarmmanager实现简单闹钟功能的具体代码,供大家参考,具体内容如下

代码:

activity_main.xml

android:layout_width="match_parent"

android:layout_height="match_parent">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="启动闹钟"

android:id="@+id/button"

android:onClick="startAlarmClick"

android:layout_alignParentEnd="true"

android:layout_alignParentStart="true" />

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="设置闹钟"

android:id="@+id/button2"

android:layout_below="@+id/button"

android:onClick="startSetAlarmClick"

android:layout_alignParentStart="true"

android:layout_alignParentEnd="true" />

MainActivity.java

package com.example.haige.alarmmanager;

import android.app.Activity;

import android.app.AlarmManager;

import android.app.PendingIntent;

import android.content.Context;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

public class MainActivity extends Activity

{

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

/*

启动闹钟

*/

public void startAlarmClick(View view)

{

//获取系统的闹钟服务

AlarmManager am= (AlarmManager) getSystemService(Context.ALARM_SERVICE);

//触发闹钟的时间(毫秒)

long triggerTime= System.currentTimeMillis()+3000;

Intent intent=new Intent(this,Alarmctivity.class);

PendingIntent op=PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_UPDATE_CURRENT);

//启动一次只会执行一次的闹钟

am.set(AlarmManager.RTC,triggerTime,op);

// //指定时间重复执行闹钟

// am.setRepeating(AlarmManager.RTC,triggerTime,2000,op);

}

/*

设置闹钟

*/

public void startSetAlarmClick(View view)

{

//获取系统的闹钟服务

AlarmManager am= (AlarmManager) getSystemService(Context.ALARM_SERVICE);

//触发闹钟的时间(毫秒)

long triggerTime= System.currentTimeMillis()+3000;

Intent intent=new Intent(this,AlarmReceiver.class);

PendingIntent op=PendingIntent.getBroadcast(this,0,intent,PendingIntent.FLAG_UPDATE_CURRENT);

//启动一次只会执行一次的闹钟

am.set(AlarmManager.RTC,triggerTime,op);

// //指定时间重复执行闹钟

// am.setRepeating(AlarmManager.RTC,triggerTime,2000,op);

}

}

activity_alarmctivity.xml

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context="com.example.haige.alarmmanager.Alarmctivity">

Alarmctivity.java

package com.example.haige.alarmmanager;

import android.app.Activity;

import android.app.AlarmManager;

import android.app.AlertDialog;

import android.app.PendingIntent;

import android.content.Context;

import android.content.DialogInterface;

import android.content.Intent;

import android.media.MediaPlayer;

import android.net.Uri;

import android.os.Bundle;

import java.io.IOException;

public class Alarmctivity extends Activity

{

MediaPlayer mp;

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_alarmctivity);

mp = new MediaPlayer();

try {

mp.setDataSource(this, Uri.parse("/storage/sdcard1/kugou/听力/南拳妈妈-你不像她.mp3"));

mp.prepare();

} catch (IOException e) {

e.printStackTrace();

}

mp.setLooping(true);

mp.start();

alarmOialog();

}

@Override

protected void onResume() {

super.onResume();

}

@Override

protected void onDestroy() {

super.onDestroy();

if(mp!=null)

{

if(mp.isPlaying())

{

mp.stop();

}

mp.release();

}

}

public void alarmOialog() {

AlertDialog.Builder builder = new AlertDialog.Builder(this);

builder.setMessage("大哥,大妹子喊你起床啦!");

builder.setPositiveButton("再来一次", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialogInterface, int i) {

alarm();

finish();

}

});

builder.setNegativeButton("停止", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialogInterface, int i) {

finish();//关闭窗口

}

});

builder.show();

}

private void alarm() {

//获取系统的闹钟服务

AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);

//触发闹钟的时间(毫秒)

long triggerTime = System.currentTimeMillis() + 5000;

Intent intent = new Intent(this, Alarmctivity.class);

PendingIntent op = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

//启动一次只会执行一次的闹钟

am.set(AlarmManager.RTC, triggerTime, op);

//指定时间重复执行闹钟

// am.setRepeating(AlarmManager.RTC,triggerTime,2000,op);

}

}

广播接收器AlarmReceiver.java

package com.example.haige.alarmmanager;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

import android.widget.Toast;

public class AlarmReceiver extends BroadcastReceiver {

public AlarmReceiver() {

}

@Override

public void onReceive(Context context, Intent intent) {

Toast.makeText(context,"起床啦,起床啦!",Toast.LENGTH_SHORT).show();

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值