iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >android 设置闹钟及通知示例
  • 832
分享到

android 设置闹钟及通知示例

示例闹钟Android 2022-06-06 04:06:12 832人浏览 独家记忆
摘要

简单说一下这次demo内容,首先做一个设置一次性闹钟,先得到alarmManager,打开一个时间对话框,在里面设置闹钟的时间,时间一到发送广播,然后广播接受者接到跳转到新的a

简单说一下这次demo内容,首先做一个设置一次性闹钟,先得到alarmManager,打开一个时间对话框,在里面设置闹钟的时间,时间一到发送广播,然后广播接受者接到跳转到新的activity播放音乐。接着是一个反复闹钟,最后是一个简单的通知,具体代码如下:


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;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //获取闹钟管理者
    alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
  }
  public void setAlarm(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 timePicker, int i, int i1) {
        Calendar c=Calendar.getInstance();
        c.set(Calendar.HOUR_OF_DAY,i);
        c.set(Calendar.MINUTE,i1);
        Intent intent=new Intent();
        intent.setAction("com.zking.g150820_android28_alarm_notification.RING");
        //将来时态的跳转 ang eng ing ong
        PendingIntent pendingIntent=PendingIntent.getBroadcast(MainActivity.this,0x101,intent,0);
        //设置闹钟
        alarmManager.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),pendingIntent);
        //时间一到,发送广播(闹钟响了)
        //广播接受者中(跳转Activity)
        // 跳转Activity,在这个Activity中播放音乐
      }
    },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);
    //弹出时间对话框
    TimePickerDialog timePickerDialog=new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
      @Override
      public void onTimeSet(TimePicker timePicker, int i, int i1) {
        Calendar c=Calendar.getInstance();
        c.set(Calendar.HOUR_OF_DAY,i);
        c.set(Calendar.MINUTE,i1);
        Intent intent=new Intent();
        intent.setAction("com.zking.g150820_android28_alarm_notification.RING");
        //将来时态的跳转 ang eng ing ong
        pendingIntent = PendingIntent.getBroadcast(MainActivity.this,0x101,intent,0);
        //设置闹钟
//        alarmManager.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),pendingIntent);
        //设置周期闹钟
        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),5000, pendingIntent);
        //时间一到,发送广播(闹钟响了)
        //广播接受者中(跳转Activity)
        // 跳转Activity,在这个Activity中播放音乐
      }
    },hour,minute,true);
    timePickerDialog.show();
  }
  public void cancelCycle(View view){
    alarmManager.cancel(pendingIntent);
  }
  public void sendNotification(View view){
    //实例化通知管理器
    NotificationManager notificationManager= (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    //实例化通知
    NotificationCompat.Builder builder=new NotificationCompat.Builder(this);
    builder.setContentTitle("今日大事件");
    builder.setContentText("骑士击败勇士夺冠");
    builder.setDefaults(NotificationCompat.DEFAULT_ALL);
    builder.setAutoCancel(true);
    builder.setSmallIcon(android.R.drawable.ic_media_play);
    builder.setContentIntent(PendingIntent.getActivity(this,0x102,new Intent(this,RingActivity.class),0));
    Notification notification=builder.build();
    //发送通知
    notificationManager.notify(0x101,notification);
  }
}

布局文件(xml):


<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="ghq.zking.com.ghq_android_28.MainActivity">
  <Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="设置闹钟(一次)"
    android:onClick="setAlarm"
    />
  <Button
    android:layout_width="match_parent"
    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="cancelCycle"
    />
  <Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="发送通知"
    android:onClick="sendNotification"
    />
</LinearLayout>

广播接受者代码:


public class RingReceived extends BroadcastReceiver {
  @Override
  public void onReceive(Context context, Intent intent) {
    if ("ghq.zking.com.ghq_android_28_alarm_notification.RING".equals(intent.getAction())){
      //跳转到Activity
      Intent intent1=new Intent(context,RingActivity.class);
      //给Intent设置标志位
      intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
      context.startActivity(intent1);
    }
  }
}

闹钟播放activity代码:


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.love);
    mediaPlayer.start();
  }
  public void stop(View view){
    mediaPlayer.stop();
    finish();
  }
}
您可能感兴趣的文章:Android通过AlarmManager类实现简单闹钟功能Android实现简易闹钟功能简单实现Android闹钟程序 附源码Android编程实现闹钟的方法详解Android闹钟设置的解决方案Android手机闹钟用法实例Android编程闹钟设置方法详解Android编程实现PendingIntent控制多个闹钟的方法Android闹钟启动时间设置无效问题的解决方法Android实现闹钟小程序


--结束END--

本文标题: android 设置闹钟及通知示例

本文链接: https://www.lsjlt.com/news/22336.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android使用AlarmManager设置闹钟功能
    本文实例为大家分享了Android使用AlarmManager设置闹钟的具体代码,供大家参考,具体内容如下 一、首先创建设置闹钟的布局页面activity_alarm_manager...
    99+
    2024-04-02
  • Android应用中无法设置闹钟的启动时间如何解决
    这期内容当中小编将会给大家带来有关Android应用中无法设置闹钟的启动时间如何解决,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Android开发中,alarmManager在5.0以上系统,启动时间设...
    99+
    2023-05-31
    android roi
  • Android中Notification.Builder通知的示例分析
    这篇文章将为大家详细讲解有关Android中Notification.Builder通知的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Android Notification.Builder通知...
    99+
    2023-05-30
    android
  • Windows7系统时钟查看方法及设置显示时区
    我们在Windows 7系统托盘的时间上,鼠标左键单击,在这里我们看到的是国内本地时间和日历。 第一、Windows 7系统时钟 在这个对话框里单击“更改日期和时间设置”。然后会弹出“...
    99+
    2023-05-29
    win7 时钟 时区 方法 设置 系统 显示
  • Android基础知识及线性布局的示例分析
    这篇文章主要介绍Android基础知识及线性布局的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.常见控件的基本属性android:id="@+id/button1":【设置控件id】a...
    99+
    2023-06-26
  • Win8怎么设置通知提示框显示时间长短
    小编给大家分享一下Win8怎么设置通知提示框显示时间长短,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!按 Win + X 组合键,打开菜单项,选择控制面板;控制面...
    99+
    2023-06-27
  • 怎么从android中跳转到应用通知设置界面
    这篇文章主要介绍了怎么从android中跳转到应用通知设置界面,此处通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考价值,需要的朋友可以参考下:Android是什么Android是一种基于Linux内核的自由及开放源代码的...
    99+
    2023-05-30
    android
  • windows8.1调整app通知显示时间的设置方法
      Win+C调出Charms超级按钮,或者Win+I打开设置面板,点击更改电脑设置 在【搜索和应用】——【通知】——【安静时段】中调整通知的免打扰时间。 ...
    99+
    2023-06-04
    windows8.1 调整app 显示时间 app 设置 时间 通知
  • 设置BFC功能及使用示例详解
    目录首先BFC是啥?不设置BFC会对网页布局有怎么样的影响?BFC还有啥作用?- 解决盒子高度塌陷的问题- 解决盒子margin塌陷的问题- 可以防止元素被相邻的浮动盒子覆盖都有哪些...
    99+
    2023-03-20
    BFC 设置使用 BFC 作用
  • win11怎么设置通知区域始终显示所有图标
    这篇“win11怎么设置通知区域始终显示所有图标”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“win11怎么设置通知区域始终...
    99+
    2023-07-02
  • Android 设置主题实现点击波纹效果的示例
    开头先说说大家都知道的Material Design。Material Design:Material Design是Google推出的一个全新的设计语言,它的特点就是拟物扁平化。Material Design包含了很多内容,我大致把它分为...
    99+
    2023-05-30
    android 水波纹 点击
  • Android usb设备权限查询及自动获取的示例分析
    这篇文章主要介绍Android usb设备权限查询及自动获取的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!看到当上面的对话框弹出时,可以使用命令查看顶层的活动窗口adb shell du...
    99+
    2023-06-25
  • Windows8通知栏右下角怎么显示星期几想设置时间显示星期
    我用的是Win8系统,我现在想设置时间栏显示星期,请问怎么在Windows8中时间栏显示星期? 步骤 1、鼠标左键点击右下角时间,之后在出来的提示框中点击“更改日期和时间设置”; 2、点击...
    99+
    2023-06-06
    Windows8 通知栏 星期几 星期 时间
  • SpringBoot随机数设置及参数间引用的示例分析
    这篇文章将为大家详细讲解有关SpringBoot随机数设置及参数间引用的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。自定义配置SpringBoot免除了项目中大部分手动配置,可以说,几乎所有的配...
    99+
    2023-06-15
  • axios全局注册,设置token,以及全局设置url请求网段的示例分析
    这篇文章将为大家详细讲解有关axios全局注册,设置token,以及全局设置url请求网段的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。a1.axios全局注册...
    99+
    2024-04-02
  • Pythondocx库删除复制paragraph及行高设置图片插入示例
    目录引言1、复制paragraph2、删除paragraph3、插入图片和paragraph行高设置引言 这两天做一个python小工具,用到了docx库,涉及到paragraph的...
    99+
    2024-04-02
  • Linux中Mint设置面板位置以及添加面板元素的示例分析
    这篇文章给大家分享的是有关Linux中Mint设置面板位置以及添加面板元素的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。刚装好Linux Mint(听说现在比Ubuntu还流行),装完之后发现面板在最上...
    99+
    2023-06-12
  • vue框架与koa框架通信及服务器跨域配置的示例分析
    这篇文章将为大家详细讲解有关vue框架与koa框架通信及服务器跨域配置的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前后端框架(本例中是vue和koa)如何发送...
    99+
    2024-04-02
  • Xfce桌面新增‘免打扰’模式以及单一应用通知设置的新特性概述
    本篇文章为大家展示了Xfce桌面新增‘免打扰’模式以及单一应用通知设置的新特性概述,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Xfce的开发者们正忙于把 Xfce 的应用和部件转移到 GTK3 上...
    99+
    2023-06-16
  • web前端中对未知高度的图片设置垂直居中的示例分析
    web前端中对未知高度的图片设置垂直居中的示例分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。标准浏览器还是将外部容器#box的显示模式...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作