Android 使用AlarmManager和NotificationManager来实现闹钟和通知栏
作者:qq_37278353 时间:2023-03-26 05:12:35
实现闹钟运行的效果如下:
通知栏的运行后效果图如下:
布局文件(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