欢迎来到代码驿站!

Android代码

当前位置:首页 > 移动开发 > Android代码

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

时间:2021-03-27 09:29:37|栏目:Android代码|点击:

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

这里写图片描述 

这里写图片描述

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

这里写图片描述

布局文件(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自定义控件之圆形、圆角ImageView

栏    目:Android代码

下一篇:android实现手机App实现拍照功能示例

本文标题:Android 使用AlarmManager和NotificationManager来实现闹钟和通知栏

本文地址:http://www.codeinn.net/misctech/88878.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有