Android提供的系统服务之--AlarmManager(闹钟服务)
——转载请注明出处:coder-pig
本节引言:
本节主要介绍的是Android系统服务中的---AlarmManager(闹钟服务),
除了开发手机闹钟外,更多的时候是作为一个全局的定时器,通常与Service
结合,在特定时间启动其他的组件!本节就来对这个AlarmManager来进行解析
同时通过小闹钟与自动换壁纸来演示这个AlarmManager的用法,好了,开始本节的
内容吧!
本节正文:
1.概念与相关属性方法图:
2.例子演示
好了,光看不练可不行,下面就来写两个简单的例子:
分别是定时闹钟提醒的实现与定时更换手机壁纸,一个是调用Activity,一个是调用Service
①一个简单的闹钟:
MainActivity.java:
- package com.jay.example.alarmmanagerdemo;
- import java.util.Calendar;
- import android.app.Activity;
- import android.app.AlarmManager;
- import android.app.PendingIntent;
- import android.app.TimePickerDialog;
- import android.app.TimePickerDialog.OnTimeSetListener;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.TimePicker;
- import android.widget.Toast;
- public class MainActivity extends Activity {
- private Button btnSetClock;
- private Button btnbtnCloseClock;
- private AlarmManager alarmManager;
- private PendingIntent pi;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- btnSetClock = (Button) findViewById(R.id.btnSetClock);
- btnbtnCloseClock = (Button) findViewById(R.id.btnCloseClock);
- // ①获取AlarmManager对象:
- alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
- // 指定要启动的是Activity组件,通过PendingIntent调用getActivity来设置
- Intent intent = new Intent(MainActivity.this, ClockActivity.class);
- pi = PendingIntent.getActivity(MainActivity.this, 0, intent, 0);
- btnSetClock.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- Calendar currentTime = Calendar.getInstance();
- // 弹出一个时间设置的对话框,供用户选择时间
- new TimePickerDialog(MainActivity.this, 0,
- new OnTimeSetListener() {
- @Override
- public void onTimeSet(TimePicker view,
- int hourOfDay, int minute) {