Android实现闹钟功能小Dome

Android实现闹钟功能小Dome,第1张

概述闹钟闹不醒的可以自己去调整下,这个最是最基本的MainActivitypublicclassMainActivityextendsAppCompatActivity{

闹钟闹不醒的可以自己去调整下,这个最是最基本的

MainActivity

public class MainActivity extends AppCompatActivity {  private AlarmManager alarmManager;  private PendingIntent pendingIntent;  @OverrIDe  protected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.activity_main);    //获取闹钟管理者    alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);  }  public voID setAlarmOne(VIEw vIEw) {    //获取当前系统时间    Calendar calendar = Calendar.getInstance();    int huor = calendar.get(Calendar.HOUR_OF_DAY);    int minute = calendar.get(Calendar.MINUTE);    //1 d出时间对话框    TimePickerDialog timePickerDialog = new TimePickerDialog(this,new TimePickerDialog.OnTimeSetListener() {      @OverrIDe      public voID onTimeSet(TimePicker vIEw,int i,int i1) {        Calendar c = Calendar.getInstance();        c.set(Calendar.HOUR_OF_DAY,i);        c.set(Calendar.MINUTE,i1);        //2确定好选择的时间        //3设置闹钟        //4当时间一到,将执行的响应        Intent intent=new Intent();        intent.setAction("com.zking.risk_androID_alarn_notification.RING");        pendingIntent = PendingIntent.getbroadcast(MainActivity.this,0x101,intent,0);        alarmManager.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),pendingIntent);      }    },huor,minute,true);    timePickerDialog.show();  }  public voID setAlarmCycle(VIEw vIEw) {    //获取当前系统时间    Calendar calendar=Calendar.getInstance();    int hour=calendar.get(Calendar.HOUR_OF_DAY);    int minute=calendar.get(Calendar.MINUTE);    //01.d出时间对话框    TimePickerDialog timePickerDialog=new TimePickerDialog(this,new TimePickerDialog.OnTimeSetListener() {      @OverrIDe      public voID onTimeSet(TimePicker timePicker,int i1) {        Calendar c=Calendar.getInstance();        c.set(Calendar.HOUR_OF_DAY,i1);        //02.确定好选择的时间        //03.设置闹钟        //04.当之间一到,将执行的响应        Intent intent=new Intent();        intent.setAction("com.zking.risk_androID_alarn_notification.RING");        pendingIntent = PendingIntent.getbroadcast(MainActivity.this,0x102,0);        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,5000,hour,true);    timePickerDialog.show();  }  public voID cancelAlarmCycle(VIEw vIEw){    alarmManager.cancel(pendingIntent);  }}

RingActivity

public class RingActivity extends AppCompatActivity {  private MediaPlayer mediaPlayer;  @OverrIDe  protected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.activity_ring);    //播放音乐    mediaPlayer = MediaPlayer.create(this,R.raw.rooster);    mediaPlayer.start();  }  public voID close(VIEw vIEw) {    mediaPlayer.stop();    finish();  }}

RingReceived

public class RingReceived extends broadcastReceiver{  @OverrIDe  public voID onReceive(Context context,Intent intent) {    if("com.zking.risk_androID_alarn_notification.RING".equals(intent.getAction())){      Log.i("test","收到广播了");      //跳转到Activity      Intent intent1=new Intent(context,RingActivity.class);      //给Intent设置标志位Flag      intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);      //Intent的组成部分:Componementname extra Action Data Categlay(分组) Flag      context.startActivity(intent1);    }  }}

activity_main

<linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"  xmlns:tools="http://schemas.androID.com/tools" androID:ID="@+ID/activity_main"  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"  androID:orIEntation="vertical"  tools:context="com.zking.risk_androID_alarn_notification.MainActivity">  <button    androID:layout_wIDth="wrap_content"    androID:layout_height="wrap_content"    androID:text="设置闹钟(一次)"    androID:onClick="setAlarmOne"    />  <button    androID:layout_wIDth="wrap_content"    androID:layout_height="wrap_content"    androID:text="设置闹钟(周期)"    androID:onClick="setAlarmCycle"    /><button  androID:layout_wIDth="match_parent"  androID:layout_height="wrap_content"  androID:text="取消周期闹钟"  androID:onClick="cancelAlarmCycle"  /></linearLayout>

actiity_ring

<linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"  xmlns:tools="http://schemas.androID.com/tools"  androID:ID="@+ID/activity_ring"  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"  androID:orIEntation="vertical"  tools:context="com.zking.risk_androID_alarn_notification.RingActivity"  androID:weightSum="1">  <TextVIEw    androID:layout_wIDth="wrap_content"    androID:layout_height="wrap_content"    androID:text="亲爱的,该起床了"    androID:textSize="30sp"    />  <TimePicker    androID:layout_wIDth="324dp"    androID:layout_height="378dp"    androID:ID="@+ID/timePicker"    androID:layout_weight="0.30" /><button  androID:layout_wIDth="match_parent"  androID:layout_height="wrap_content"  androID:text="关闭"  androID:onClick="close"  /></linearLayout>

最后的清单配置

 <activity androID:name=".RingActivity"></activity>    <receiver androID:name=".RingReceived">      <intent-filter>        <action androID:name="com.zking.risk_androID_alarn_notification.RING"></action>      </intent-filter>    </receiver>

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

总结

以上是内存溢出为你收集整理的Android实现闹钟功能小Dome全部内容,希望文章能够帮你解决Android实现闹钟功能小Dome所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1146926.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存