扣丁学堂——AlarmManager
来源:互联网 发布:网络接口都有哪些 编辑:程序博客网 时间:2024/04/19 11:30
一丶源码见本文
二丶课程讲解及代码
MainActivity
ublic class Main1217Activity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main1217); } public void startSet(View v){ //获取到了系统的闹钟服务 AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE); //触发闹钟的时间 long triggerTime = System.currentTimeMillis()+3000; Intent intent = new Intent(this,Main2Activity2.class);// 可以get 广播,服务,activity 类型 PendingIntent op = PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_UPDATE_CURRENT); //只会执行一次的闹钟 am.set(AlarmManager.RTC, triggerTime, op); //op : 启动这个闹钟的操作,也就是干什么事. } public void startAlarmClick(View v){ //获取到了系统的闹钟服务 AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE); //触发闹钟的时间 long triggerTime = System.currentTimeMillis()+3000; Intent intent = new Intent(this,MyReceiverR.class);// 可以get 广播,服务,activity 类型 PendingIntent op = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); //只会执行一次的闹钟 am.set(AlarmManager.RTC,triggerTime,op); //op : 启动这个闹钟的操作,也就是干什么事. //指定时间重复执行 // am.setRepeating(AlarmManager.RTC, triggerTime, 2000, op); //2000 : 间隔时间,多长时间重复一次 //am.cancel(op);//取消操作 }}
Activity2
public class Main2Activity2 extends AppCompatActivity { MediaPlayer mp; //媒体播放对象 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //唤醒屏幕 Window win = getWindow(); win.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD| WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); setContentView(R.layout.activity_main22); mp = new MediaPlayer(); try { mp.setDataSource(this, Uri.parse("/storage/extSdCard/qqmusic/song/a.mp3")); mp.prepare(); //状态,预备状态 } catch (IOException e) { e.printStackTrace(); } mp.setLooping(true); //循环 mp.start(); //启动 alarmDialog(); //弹出对话框 } @Override protected void onDestroy() { super.onDestroy(); if(mp !=null){ if(mp.isPlaying()){ mp.stop(); } mp.release(); //释放资源 } } public void alarmDialog(){ AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage("起床了"); //弹出框提示内容 //弹出框按钮 builder.setPositiveButton("再来一次", new DialogInterface.OnClickListener(){ @Override public void onClick(DialogInterface dialog, int which) { alarm();//由闹钟服务来自动 启动对话窗口 finish();//关闭窗口 } }); builder.setNegativeButton("关闭了", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { finish(); } }); builder.show(); } private void alarm(){ //获取到了系统的闹钟服务 AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE); //触发闹钟的时间 long triggerTime = System.currentTimeMillis()+5000; Intent intent = new Intent(this,Main2Activity2.class); PendingIntent op = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); //只会执行一次的闹钟 am.set(AlarmManager.RTC, triggerTime, op); //op : 启动这个闹钟的操作,也就是干什么事. }}
Receive
public class MyReceiverR extends BroadcastReceiver { public MyReceiverR() { } @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, "闹钟", Toast.LENGTH_SHORT).show(); }}
0 0
- 扣丁学堂——AlarmManager
- 扣丁学堂——ListView
- 扣丁学堂——自定义组件
- 扣丁学堂——ViewPager+ImageSwitch
- 扣丁学堂——SharedPreferences
- 扣丁学堂——Intent
- 扣丁学堂——Service
- 扣丁学堂——收发短信
- 扣丁学堂——Fragments
- 扣丁学堂——ActionBar
- 扣丁学堂——TelephoneManager
- 扣丁学堂——handler
- 扣丁学堂——AsyncTask
- 扣丁学堂——文件管理
- 扣丁学堂——XML解析
- 扣丁学堂——Json解析
- 扣丁学堂——SQLite
- 扣丁学堂——ContentProvide
- “移动互联网+”第一股 正益移动登陆新三板
- linux nfs文件挂载模拟云存储
- 百度地图定位v6.1.3--1.官方demo实践分析
- Android中的AndroidAnnotations
- c#自定义控件
- 扣丁学堂——AlarmManager
- 关于setsid() 函数的说明
- 山东省第六届蓝桥杯 ///标题:奖券数目//c/c++组
- Volley JsonObjectRequest 获取json字符串乱码
- 解析检测先锋之气体传感器的技术应用
- Java 开发必会的 Linux 命令
- 为了取消老毛桃的主页设置而发的博客,没有用,不要点开
- android开发仿iphone开关按钮动态效果
- Git Reference---Sharing and Updating Projects