android小闹钟实现代码

本文介绍如何使用MediaPlayer类实现Android应用的闹钟功能,包括界面布局、MainActivity类和AlarmActivity类的代码实现,以及音乐播放和闹钟设置的具体步骤。
要想实现闹铃功能的话,就必然不能少了MediaPlayer这个类,通过媒体播放音乐

一个简单的界面布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
   
    tools:context=".MainActivity" >
    <Button
        android:id="@+id/btn_setting"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="设置闹钟" />
</LinearLayout>

主要分为2个类:
1、MainActivity
2、AlarmActivity
----------------------------------------------------------------------------------------------------
1、MainActivity主要用来显示界面
package com.example.alarmdemo;
//以下是所需要导入的包
import java.util.Calendar;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.Service;
import android.app.TimePickerDialog;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TimePicker;


public class MainActivity extends Activity {
     private Button btn_setting;
     private AlarmManager aManager;//闹钟管理类

     @Override
     protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          btn_setting = (Button) findViewById(R.id.btn_setting);
          btn_setting.setOnClickListener(new OnClickListener() {

               @Override
               public void onClick(View v) {
                    // 得到系统当前时间
                    Calendar currentCalendar = Calendar.getInstance();
                    /*
                    * 参数一:当前activity实例对象
                    * 参数二:确定好修改时间后的响应事件:TimePickerDialog
                    * 参数三:弹出对话框中显示的小时
                    * 参数四:弹出对话框中小时的分钟
                    */

                    TimePickerDialog dialog = new TimePickerDialog(
                              MainActivity.this, new OnTimeSetListener() {

                                   @Override
                                   public void onTimeSet(TimePicker view,
                                             int hourOfDay, int minute) {
                                        Calendar c = Calendar.getInstance();
                                        c.setTimeInMillis(System.currentTimeMillis());
                                        // 设置c对象的小时和分钟
                                        c.set(Calendar.HOUR, hourOfDay);
                                        c.set(Calendar.MINUTE, minute);
                                        //从当前界面跳转到音乐播放服务的activity
                                        Intent intent = new Intent(MainActivity.this,
                                                  AlarmActivity.class);

                                        PendingIntent pendingIntent = PendingIntent
                                                  .getActivity(MainActivity.this, 0,
                                                            intent, 0);
                                        aManager.set(AlarmManager.RTC_WAKEUP,
                                                  c.getTimeInMillis(), pendingIntent);

                                   }
                              }, currentCalendar.get(Calendar.HOUR_OF_DAY),
                              currentCalendar.get(Calendar.MINUTE), false);
                    dialog.show();
               }
          });
          aManager = (AlarmManager) getSystemService(Service.ALARM_SERVICE);//得到系统默认服务
     }

     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
          // Inflate the menu; this adds items to the action bar if it is present.
          getMenuInflater().inflate(R.menu.main, menu);
          return true;
     }

}
---------------------------------------------------------------------------------------------------
2、音乐播放类
package com.example.alarmdemo;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.media.MediaPlayer;
import android.os.Bundle;


public class AlarmActivity extends Activity {
private MediaPlayer mediaPlayer;
     @Override
     protected void onCreate(Bundle savedInstanceState) {
          // TODO Auto-generated method stub
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          if(mediaPlayer==null){
               mediaPlayer=MediaPlayer.create(AlarmActivity.this, R.raw.sgos);//这是放的是所要播放音乐的资源文件
               mediaPlayer.start();
          }
          Builder bd=new AlertDialog.Builder(AlarmActivity.this);
          bd.setTitle("铃响了……");
          bd.setMessage("起床了,快点");
          bd.setPositiveButton("确定", new OnClickListener() {
              
               @Override
               public void onClick(DialogInterface dialog, int which) {
                    if(mediaPlayer!=null&&mediaPlayer.isPlaying()==true){
                         mediaPlayer.stop();
                         mediaPlayer=null;
                         //结束当前activity
                         AlarmActivity.this.finish();
                    }
                   
               }
          });
          bd.show();
     }

}
通过以上的代码可以实现闹钟定时响铃的功能
这些都是本人在学习时候一点点心得

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值