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

作者:qq_37278353 时间:2023-03-26 05:12:35 

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

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

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来实现闹钟和通知栏网站的支持!

来源:http://blog.csdn.net/qq_37278353/article/details/56605359

标签:android,alarmManager,notificationManager
0
投稿

猜你喜欢

  • java中set接口使用方法详解

    2023-03-15 06:10:12
  • 使用MAT进行JVM内存分析实例

    2023-12-14 05:29:51
  • Android实现recyclerview城市字母索引列表

    2023-09-28 04:22:06
  • Java实现世界上最快的排序算法Timsort的示例代码

    2021-12-14 17:57:27
  • C#生成随机数的方法小结

    2023-03-30 22:07:33
  • 详解WPF中的对象资源

    2023-10-28 14:09:41
  • SpringMVC请求参数的使用总结

    2022-11-30 22:23:18
  • Android 通过SQLite数据库实现数据存储管理

    2023-09-28 11:31:59
  • c#多线程之线程基础

    2022-10-06 20:34:44
  • VS2019配置OpenCV时找不到Microsoft.Cpp.x64.user的解决方法

    2023-07-01 01:57:36
  • IDEA使用GsonFormat完成JSON和JavaBean之间的转换

    2021-06-10 11:30:30
  • C#实现给Word每一页设置不同文字水印的方法详解

    2023-07-01 18:49:40
  • 如何通过Android Stduio来编写一个完整的天气预报APP

    2023-10-11 17:45:01
  • Android PopUpWindow使用详解

    2023-06-30 06:33:11
  • Java多线程之synchronized关键字的使用

    2023-12-12 21:46:16
  • maven的生命周期及常用命令介绍

    2022-03-10 17:21:16
  • android点击无效验证的解决方法

    2022-02-28 03:55:08
  • protobuf与json转换小结

    2023-01-23 15:26:34
  • java 交换两个数据的方法实例详解

    2021-12-06 00:56:04
  • Java实现单向链表反转

    2023-11-18 01:03:11
  • asp之家 软件编程 m.aspxhome.com