android小闹钟实现代码

要想实现闹铃功能的话,就必然不能少了 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();
     }

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

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 Android Studio 实现闹钟功能的代码示例: 1. 创建一个新的 Android 项目并在布局文件中添加一个 Button 和一个 TextView,用于设置闹钟的时间和显示闹钟状态。 2. 在 MainActivity.java 中添加以下代码: ```java public class MainActivity extends AppCompatActivity { private TextView mTextView; private Button mButton; private AlarmManager mAlarmManager; private PendingIntent mPendingIntent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTextView = findViewById(R.id.text_view); mButton = findViewById(R.id.button); mAlarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); Intent intent = new Intent(MainActivity.this, AlarmReceiver.class); mPendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, intent, 0); mButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); // 设置闹钟时间为当前时间 + 10 秒 calendar.add(Calendar.SECOND, 10); // 设置闹钟 mAlarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), mPendingIntent); // 更新界面 mTextView.setText("闹钟已设置"); } }); } } ``` 3. 创建一个 AlarmReceiver 类用于接收闹钟广播并处理闹钟事件: ```java public class AlarmReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // 处理闹钟事件 Toast.makeText(context, "闹钟响了!", Toast.LENGTH_LONG).show(); } } ``` 4. 在 AndroidManifest.xml 文件中添加以下代码: ```xml <uses-permission android:name="android.permission.SET_ALARM" /> <application> <receiver android:name=".AlarmReceiver" /> </application> ``` 5. 运行应用程序,点击按钮设置闹钟,10 秒后应该会收到一个 Toast 提示,表示闹钟已经响了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值