小闹钟程序开发中的要点就是:

      1、时间选择对话框(TimePicker)

      2、获取闹钟管理器并对其进行设置

      3、注册广播接收器

布局文件(一次性闹钟)

<?xml version="1.0" encoding="utf-8"?>    
MainActivity.java
package com.pxd.alarmandnotice;import android.app.AlarmManager;import android.app.PendingIntent;import android.app.TimePickerDialog;import android.content.Context;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.TimePicker;import java.util.Calendar;public class MainActivity extends AppCompatActivity {    private AlarmManager alarmManager;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //获取闹钟的管理者        alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);    }    public  void  alarmOne(View view){        //获取当前系统的时间        Calendar calendar=Calendar.getInstance();        int hour=calendar.get(Calendar.HOUR_OF_DAY);        int minute=calendar.get(Calendar.MINUTE);        //弹出时间对话框        TimePickerDialog timePickerDialog=new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {            @Override            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {                Calendar c=Calendar.getInstance();                c.set(Calendar.HOUR_OF_DAY,hourOfDay);                c.set(Calendar.MINUTE,minute);                //时间一到,发送广播(闹钟响了)                Intent intent=new Intent();                intent.setAction("com.pxd.alarmandnotice.RING");                //将来时态的跳转                PendingIntent pendingIntent=PendingIntent.getBroadcast(MainActivity.this,0x101,intent,0);              //设置闹钟                alarmManager.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),pendingIntent);       }        },hour,minute,true);        timePickerDialog.show();    }}

广播接受者: RingReceived
package com.pxd.alarmandnotice;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.util.Log;public class RingReceived extends BroadcastReceiver {    @Override    public void onReceive(Context context, Intent intent) {        if("com.pxd.alarmandnotice.RING".equals(intent.getAction())){            Log.i("test","闹钟响了");            //跳转到Activity n //广播接受者中(跳转Activity)            Intent intent1=new Intent(context,RingActivity.class);            //给Intent设置标志位            intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);            context.startActivity(intent1);        }    }}

要跳转的Activity, RingActivity播放音乐
package com.pxd.alarmandnotice;import android.media.MediaPlayer;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;public class RingActivity extends AppCompatActivity {    private MediaPlayer mediaPlayer;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_ring);      //时间一到跳转Activity,在这个Activity中播放音乐        mediaPlayer = MediaPlayer.create(this, R.raw.one);        mediaPlayer.start();    }    public void stop(View view){        mediaPlayer.stop();        finish();    }}

响铃闹钟布局,activity_ring.xml
<?xml version="1.0" encoding="utf-8"?>        

实现周期性闹钟只需把
 //设置闹钟 alarmManager.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),pendingIntent)
改为:我这里设置的是5秒响一次
 //设置周期闹钟(5秒)  alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),5000, pendingIntent);       
//停止闹钟
public void cancelMany(View view){    alarmManager.cancel(pendingIntent);}
这样一个简单的小闹钟就可以实现了。



更多相关文章

  1. android EditText设置不可写
  2. android“设置”里的版本号
  3. 在Fragment中设置控件点击方法,执行失败。
  4. Android(安卓)闹钟管理类的使用
  5. Android设置通知栏/状态栏透明改变通知栏颜色和app最上部分颜色
  6. android 设置中划线 下划线等
  7. Andorid Dialog 示例【慢慢更新】
  8. android图表ichartjs
  9. Android(安卓)闹钟管理类的使用

随机推荐

  1. [Android] ubuntu 下不识别 Android 设备
  2. [置顶] Android IPC 通讯机制源码分析【
  3. android去掉button默认的点击阴影
  4. View视图——TextView、EditText、Button
  5. 【转】Android之自定义设备管理
  6. android进程间共享简单数据
  7. 自己封装的Android sqlite-helper.jar包
  8. [置顶] 我的Android进阶之旅------>Andro
  9. Android的View和ViewGroup分析
  10. App架构之MVP、MVVM、MVC对比