闹钟与闹钟通知栏

这里写图片描述“`这里写图片描述

通知栏Activity
"1.0" encoding="utf-8"?>
"http://schemas.android.com/apk/res/android"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"android:orientation="vertical"tools:context="com.example.android28.MainActivity">"match_parent"android:layout_height="wrap_content"android:text="起床了"android:textSize="30sp"/>"wrap_content"android:layout_height="wrap_content"android:id="@+id/analogClock" />"match_parent"android:layout_height="wrap_content"android:text="停止"android:onClick="stop"/>

"1.0" encoding="utf-8"?>
"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"tools:context="com.example.android28.MainActivity">"wrap_content"android:layout_height="wrap_content"android:text="设置闹钟(一次)"android:onClick="setAlarmOne"/>"wrap_content"android:layout_height="wrap_content"android:onClick="setAlarmCycle"android:text="设置闹钟(周期)" />"match_parent"android:layout_height="wrap_content"android:text="取消周期闹钟"android:onClick="cancelAlarmCycle"/>
MainActivitypackage com.example.android28;import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.TimePickerDialog;
import android.content.Context;
import android.content.Intent;
import android.icu.util.Calendar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TimePicker;public class MainActivity extends AppCompatActivity {private AlarmManager alarmManager;private PendingIntent pendingIntent;@Overrideprotected 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 hour=calendar.get(Calendar.HOUR_OF_DAY);int minute=calendar.get(Calendar.MINUTE);//01.弹出时间对话框(选择时间)TimePickerDialog timePickerDialog=new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {@Overridepublic void onTimeSet( TimePicker timePicker, int i, int i1) {//02.确定选择好的时间  i  i1Calendar c=Calendar.getInstance();c.set(Calendar.HOUR_OF_DAY,i);c.set(Calendar.MINUTE,i1);//04.时间一到,执行相对应的操作Intent intent=new Intent();intent.setAction("com.example.android28.MainActivity");PendingIntent pendingIntent=PendingIntent.getBroadcast(MainActivity.this,0x101,intent,0);//03.设置闹钟alarmManager.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),pendingIntent);}},hour,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.弹出时间对话框(选择时间)TimePickerDialog timePickerDialog=new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {@Overridepublic void onTimeSet(TimePicker timePicker, int i, int i1) {//02.确定选择好的时间  i  i1Calendar c=Calendar.getInstance();c.set(Calendar.HOUR_OF_DAY,i);c.set(Calendar.MINUTE,i1);//04.时间一到,执行相对应的操作Intent  intent=new Intent();intent.setAction("com.example.android28.MainActivity");pendingIntent = PendingIntent.getBroadcast(MainActivity.this,0x102,intent,0);//03.设置闹钟(一次)
//                alarmManager.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),pendingIntent);//03.设置闹钟(周期)alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),5000, pendingIntent);}},hour,minute,true);timePickerDialog.show();}public void cancelAlarmCycle(View view){alarmManager.cancel(pendingIntent);}}RingActivitypackage com.example.android28;import android.app.Notification;
import android.app.NotificationManager;
import android.content.Context;
import android.media.MediaPlayer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.app.NotificationCompat;
import android.view.View;public class RingActivity extends AppCompatActivity {private MediaPlayer mediaPlayer;@Overrideprotected void onCreate(Bundle savedIstanceState) {super.onCreate(savedIstanceState);setContentView(R.layout.activity_ring);//播放音乐mediaPlayer = MediaPlayer.create(this, R.raw.love);mediaPlayer.start();//实例化通知管理器NotificationManager notificationManager=(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);//实例化通知NotificationCompat.Builder builder=new NotificationCompat.Builder(this);builder.setDefaults(NotificationCompat.DEFAULT_ALL);builder.setContentTitle("闹钟响了");builder.setSmallIcon(android.R.drawable.ic_lock_idle_alarm);builder.setContentText("准备工作");Notification notification=builder.build();//发送通知notificationManager.notify(0x103,notification);}public void stop(View view){mediaPlayer.stop();finish();}}
RingReceived
package com.example.android28;import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;public class RingReceived extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {if("com.example.android28.MainActivity".equals(intent.getAction())){Log.i("test","闹钟响了");//跳转到ActivityIntent intent1=new Intent(context,RingActivity.class);//广播跳转到Activity  ,必须给Intent设置标志位Flags//Intent的组成部分6//Flags Catagroy(分组) Action  Data Extra ComponeName(组件名)intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(intent1);}}
}AndroidManifest.xml
"1.0" encoding="utf-8"?>
"http://schemas.android.com/apk/res/android"package="com.example.android28">"true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:supportsRtl="true"android:theme="@style/AppTheme">".MainActivity">"android.intent.action.MAIN"/>"android.intent.category.LAUNCHER"/>".RingActivity">".RingReceived">"com.example.android28.MainActivity">`这里写代码片`
在raw文件放自己所需要的音乐`这里写代码片`


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部