android值制作简易的闹钟和通知栏信息
来源:互联网 发布:在淘宝网怎么投诉卖家 编辑:程序博客网 时间:2024/05/24 06:50
1.制作一次性闹钟
2.制作周期闹钟
3.制作通知信息的弹出框
首先来一个闹钟思维导图吧
简单的思路:
设置(MainActivity)----------->广播接受者(RingReceiver)------------>响铃(RingActivity)---------->设置(MainAcitvity)
再来一个通知的思维导图
代码如下,里面有详解
package com.example.cookie.android0723alarmone;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 am; private PendingIntent pendingIntent; private NotificationManager notificationManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取闹钟管理器 am = (AlarmManager) getSystemService(Context.ALARM_SERVICE); //获取通知管理器 notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); } public void setAlarm(View view){ Calendar calendar=Calendar.getInstance(); int hour=calendar.get(Calendar.HOUR_OF_DAY); int minute=calendar.get(Calendar.MINUTE); //1.弹出提示框 TimePickerDialog timePickerDialog=new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { //2.获取闹钟时间 Calendar c=Calendar.getInstance(); c.set(Calendar.HOUR_OF_DAY,hourOfDay); c.set(Calendar.MINUTE,minute); //3.设置闹钟 PendingIntent pendingIntent=PendingIntent.getBroadcast(MainActivity.this,0x101,new Intent("com.example.cookie.android0723alarmone.RING"),0); am.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),pendingIntent); } },hour,minute,true);timePickerDialog.show(); } public void setAlarmRepeat(View view){ Calendar calendar=Calendar.getInstance(); int hour=calendar.get(Calendar.HOUR_OF_DAY); int minute=calendar.get(Calendar.MINUTE); //1.弹出对话框 TimePickerDialog timePickerDialog=new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { //2.获取闹钟时间 Calendar c=Calendar.getInstance(); c.set(Calendar.HOUR_OF_DAY,hourOfDay); c.set(Calendar.MINUTE,minute); //3.设置闹钟 pendingIntent = PendingIntent.getBroadcast(MainActivity.this,0x101,new Intent("com.example.cookie.android0723alarmone.RING"),0); am.setRepeating(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),5000, pendingIntent); } },hour,minute,true); timePickerDialog.show(); } public void stopRepeat(View view){ am.cancel(pendingIntent); } public void send(View view){ //实例化通知 NotificationCompat.Builder builder=new NotificationCompat.Builder(this); builder.setContentTitle("提示"); builder.setContentText("恭喜您,中奖了,请先汇款给某某激活您的账号"); //设置图标 builder.setSmallIcon(android.R.drawable.star_on); //使用默认的闪光灯,铃声 builder.setDefaults(NotificationCompat.DEFAULT_ALL); Notification notification=builder.build(); //发送通知 notificationManager.notify(0x101,notification); }}
RingReceiver广播接收者
package com.example.cookie.android0723alarmone;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.util.Log;/** * Created by Administrator on 2017/7/23 0023. */public class RingReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if ("com.example.cookie.android0723alarmone.RING".equals(intent.getAction())){ Log.i("test","响铃了!!!"); //跳转到activity中 Intent intent2=new Intent(context,RingActivity.class); intent2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent2); } }}
RingActivity闹钟播放
package com.example.cookie.android0723alarmone;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.util.Log;/** * Created by Administrator on 2017/7/23 0023. */public class RingReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if ("com.example.cookie.android0723alarmone.RING".equals(intent.getAction())){ Log.i("test","响铃了!!!"); //跳转到activity中 Intent intent2=new Intent(context,RingActivity.class); intent2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent2); } }}
xml代码就不写了,还要记得去配置哈。。。
阅读全文
0 0
- android值制作简易的闹钟和通知栏信息
- android值制作简易的闹钟和通知栏信息
- Android之简易的闹钟和通知
- Android (闹钟和通知栏的设置)
- Android 闹钟和通知
- android闹钟的制作
- Android闹钟 AlarmManager的使用和通知的使用
- android 制作的精美闹钟
- android 制作的精美闹钟
- Android 仿闹钟 及 通知栏的实现
- Android-AlarmManager+notificationManager(闹钟+通知)的实例
- 闹钟与闹钟通知栏
- android简易小闹钟
- Android简易闹钟实现
- Android AlarmManager(闹钟、Notification 通知栏)
- android实现闹钟与通知栏
- Android闹钟-通知
- Android 闹钟以及通知
- 2014上海全国邀请赛 【(5+3)/10】
- 今年暑假不AC HDU
- java学习过程中对抽象类的理解
- (2)直接插入排序
- C#实现验证码编写
- android值制作简易的闹钟和通知栏信息
- 函数式编程扫盲篇
- HDU 2159 二维完全背包
- 【51nod 球与切换器】+ dp
- 《黑客与画家》读书笔记
- Error creating bean with name 'itemController': Injection of resource dependencies failed; nested ex
- I
- 写 SQL 时常犯的 10 个错误
- JS中getElementById()、getElementsByName()、getElementsByTagName() 的区别和应用