AlarmManager与NotificationManager
来源:互联网 发布:逆战天梯卡数据不扣分 编辑:程序博客网 时间:2024/05/29 16:05
1.AlarmManager实现闹钟
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.zking.alarm_notification.MainActivity"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="响一次的闹钟" android:onClick="once"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="周期闹钟" android:onClick="week"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="取消周期闹钟" android:onClick="reset"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="通知" android:onClick="send"/></LinearLayout>
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.zking.alarm_notification.RingActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="懒猪起床了"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="stop" android:text="停止"/></LinearLayout>
package com.zking.alarm_notification;import android.app.AlarmManager;import android.app.Notification;import android.app.NotificationManager;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.support.v7.app.NotificationCompat;import android.view.View;import android.widget.TimePicker;import java.util.Calendar;public class MainActivity extends AppCompatActivity { private AlarmManager alarmManager; private PendingIntent pendingIntent; private NotificationManager notificationManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); } public void once(View view){ //当前系统时间 Calendar calendar=Calendar.getInstance(); int hour=calendar.get(Calendar.HOUR_OF_DAY); int min=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,hourOfDay); c.set(Calendar.MINUTE,minute,minute); //获取时间 PendingIntent pendingIntent=PendingIntent.getBroadcast(MainActivity.this,0x101,new Intent("com.zking.alarm_notification.alarm"),0); alarmManager.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),pendingIntent); } },hour,min,true); //展现对话框 timePickerDialog.show(); } public void week(View view){ //当前系统时间 Calendar calendar=Calendar.getInstance(); int hour=calendar.get(Calendar.HOUR_OF_DAY); int min=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,hourOfDay); c.set(Calendar.MINUTE,minute,minute); //获取时间 pendingIntent = PendingIntent.getBroadcast(MainActivity.this,0x102,new Intent("com.zking.alarm_notification.alarm"),0); alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),5000, pendingIntent); } },hour,min,true); //展现对话框 timePickerDialog.show(); } //取消周期闹钟 public void reset(View view){ alarmManager.cancel(pendingIntent); } public void send(View view){ //获取通知管理器 notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); //实例化通知 NotificationCompat.Builder builder=new NotificationCompat.Builder(this); builder.setContentTitle("提示:"); builder.setContentText("激活"); builder.setDefaults(Notification.DEFAULT_ALL); builder.setSmallIcon(android.R.drawable.star_on); Notification notification=builder.build(); notificationManager.notify(0x103,notification); }}
package com.zking.alarm_notification;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.util.Log;/** * Created by Administrator on 2017/7/23 0023. */public class AlarmReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { if("com.zking.alarm_notification.alarm".equals(intent.getAction())){ Log.i("test","闹钟响了"); //跳转 Intent intent2=new Intent(context,RingActivity.class); intent2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent2); } }}
package com.zking.alarm_notification;import android.media.MediaPlayer;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;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); //播放 Log.i("test","播放音乐了"); mediaPlayer = MediaPlayer.create(this, R.raw.s1); mediaPlayer.start(); } public void stop(View view){ mediaPlayer.stop(); }}
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.zking.alarm_notification"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <activity android:name=".RingActivity"> </activity> <receiver android:name=".AlarmReceiver" android:exported="true" android:enabled="true"> <intent-filter> <action android:name="com.zking.alarm_notification.alarm"></action> </intent-filter> </receiver> </application></manifest>
阅读全文
0 0
- AlarmManager与NotificationManager
- 闹钟AlarmManager和通知NotificationManager
- Android-AlarmManager+notificationManager(闹钟+通知)的实例
- Android闹钟AlarmManager-通知NotificationManager-自定义通知栏
- NotificationManager
- NotificationManager
- NotificationManager
- NotificationManager
- NotificationManager
- NotificationManager
- Notification与NotificationManager详细介绍
- Notification与NotificationManager详细介绍
- Notification与NotificationManager详细介绍
- Notification与NotificationManager详细介绍
- PendingInent 与 AlarmManager
- PendingInent 与 AlarmManager
- Android PendingIntent与AlarmManager
- Timer 与 AlarmManager
- 【代码片-3】 基于jsp+javabean+servlet+mongodb 增删改查
- commons pool2对象池入门
- SSM整合手机联系人
- LRUCache,DiskLrucache,四种引用的区别,以及图片二次采样,三级缓存小知识
- 剑指offer面试题61 按之字形顺序打印二叉树(java实现)
- AlarmManager与NotificationManager
- 数据库连接池的代码实例(DHCP、C3P0)
- 设计模式--备忘录模式
- G
- java学习_小程序(四线程断点网络资源下载,即时进度反馈)
- java求解一给定数字的二进制表达中的1的个数
- ctrl+v粘贴快捷键突然不能使用的原因及解决方案
- Linux学习总结(37)——CentOS7下Firewall防火墙配置用法详解
- Square HDU