当前位置: 首页 > 编程笔记 >

Android 使用AlarmManager和NotificationManager来实现闹钟和通知栏

杭胜
2023-03-14
本文向大家介绍Android 使用AlarmManager和NotificationManager来实现闹钟和通知栏,包括了Android 使用AlarmManager和NotificationManager来实现闹钟和通知栏的使用技巧和注意事项,需要的朋友参考一下

实现闹钟运行的效果如下:

 

通知栏的运行后效果图如下:

布局文件(activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<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.example.g150825_android28.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="setAlarm"
    />
  <Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="取消周期闹钟"
    android:onClick="cancelAlarm"
    />
  <Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="发送通知"
    android:onClick="send"
    />
</LinearLayout>

activity_ring.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
  tools:context="com.example.g150825_android28.RingActivity">
  <Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="停止"
    android:onClick="stop"
    android:id="@+id/button"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />
  <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="慈禧太后青霜来了,赶紧起床!"
    android:id="@+id/textView"
    android:textSize="30sp"
    android:layout_below="@+id/button"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="36dp" />
</RelativeLayout>

RingActivity

package com.example.g150825_android28;
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);
    mediaPlayer = MediaPlayer.create(this, R.raw.sqbm);
    mediaPlayer.start();
  }
  public void stop(View view){
    mediaPlayer.stop();
    finish();
  }
}

MyReceiver

package com.example.g150825_android28;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
public class MyReceiver extends BroadcastReceiver {
  public MyReceiver() {
  }
  @Override
  public void onReceive(Context context, Intent intent) {
    if("com.example.g150825_android28.RING".equals(intent.getAction())){
      Toast.makeText(context, "闹钟响了", Toast.LENGTH_SHORT).show();
      //跳转到Activity
      Intent intent1=new Intent(context,RingActivity.class);
      //设置标志位(Flag)
      intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
      context.startActivity(intent1);
    }
  }
}

清单文件(AndroidManifest.xml)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.example.g150825_android28">
  <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    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>
    <receiver
      android:name=".MyReceiver"
      android:enabled="true"
      android:exported="true">
      <intent-filter>
        <action android:name="com.example.g150825_android28.RING" />
      </intent-filter>
    </receiver>
    <activity android:name=".RingActivity"
      android:theme="@style/Theme.AppCompat.Dialog"
      ></activity>
  </application>
</manifest>

以上所述是小编给大家介绍的Android 使用AlarmManager和NotificationManager来实现闹钟和通知栏,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!

 类似资料:
  • 主要内容:本节引言:,1.Timer类与AlarmManager类区别:,2.获得AlarmManager实例对象:,3.相关方法讲解:,4.使用示例:一个简单的定时任务,5.代码示例下载:,本节小结:本节引言: 本节带来的Android中的AlarmManager(闹钟服务),听名字我们知道可以通过它开发手机闹钟类的APP, 而在文档中的解释是:在特定的时刻为我们广播一个指定的Intent,简单说就是我们自己定一个时间, 然后当到时间时,AlarmManager会为我们广播一个我们设定好的In

  • 本文向大家介绍Android中通过Notification&NotificationManager实现消息通知,包括了Android中通过Notification&NotificationManager实现消息通知的使用技巧和注意事项,需要的朋友参考一下 notification是一种让你的应用程序在没有开启情况下或在后台运行警示用户。它是看不见的程序组件(Broadcast Receiver,S

  • 本文向大家介绍android 设置闹钟及通知示例,包括了android 设置闹钟及通知示例的使用技巧和注意事项,需要的朋友参考一下 简单说一下这次demo内容,首先做一个设置一次性闹钟,先得到alarmManager,打开一个时间对话框,在里面设置闹钟的时间,时间一到发送广播,然后广播接受者接到跳转到新的activity播放音乐。接着是一个反复闹钟,最后是一个简单的通知,具体代码如下: 布局文件(

  • 本文向大家介绍Android实现简易闹钟功能,包括了Android实现简易闹钟功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Android通过广播来实现闹钟的具体代码,供大家参考,具体内容如下 1.创建广播接收RepeatingAlarm.java 2.广播在Manifest.xml中配置: 3.通过代码设置一个闹钟 4.通过代码取消一个闹钟: 5.闹钟响是弹出的对化框并播放音

  • 本文向大家介绍简单实现Android闹钟功能,包括了简单实现Android闹钟功能的使用技巧和注意事项,需要的朋友参考一下 闹钟的简单实现,只有显示时间和设置闹钟。 AlarmView TimeView AlarmReceiver MainActivity PlayAlarmAty 运行效果图 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 本文向大家介绍Android实现闹钟功能小Dome,包括了Android实现闹钟功能小Dome的使用技巧和注意事项,需要的朋友参考一下 闹钟闹不醒的可以自己去调整下,这个最是最基本的 MainActivity RingActivity RingReceived activity_main actiity_ring 最后的清单配置 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持

  • 本文向大家介绍Android服务应用ClockService实现闹钟功能,包括了Android服务应用ClockService实现闹钟功能的使用技巧和注意事项,需要的朋友参考一下 ClockService安卓服务应用实现闹钟,供大家参考,具体内容如下 创建ClockActivity,可输入一个时间(使用Time文本框),再创建一个ClockService在用于计时,到时间后,以在Activity中

  • 本文向大家介绍Android自定义View 实现闹钟唤起播放闹钟铃声功能,包括了Android自定义View 实现闹钟唤起播放闹钟铃声功能的使用技巧和注意事项,需要的朋友参考一下 先上图看一下闹钟唤期页面的效果 实现的功能: 1:转动的图片根据天气情况更换 2:转动时间可以设置,转动结束,闹铃声音就结束 3:光圈颜色渐变效果 直接上代码啦: 以上所述是小编给大家介绍的Android自定义View