PendingIntent与alermmanger以及TimerPicker

PendingIntent的三个方法:

getActivity(Context context, int requestCode, Intent intent, int flags)

Retrieve a PendingIntent that will start a new activity, like calling Context.startActivity(Intent).c

getBroadcast(Context context, int requestCode, Intent intent, int flags)

Retrieve a PendingIntent that will perform a broadcast, like calling Context.sendBroadcast().

getService(Context context, int requestCode, Intent intent, int flags)

Retrieve a PendingIntent that will start a service, like calling Context.startService().

 

AlarmManager am;

  am = (AlarmManager)getSystemService(ALARM_SERVICE);

设置一次闹钟:

am.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), sender);

设置重复闹钟:(times是间隔时间,c.getTimeInMillis()是起闹时间,sender是一个pendingIntent)

am.setRepeating(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),times,sender);

取消闹钟:

am.cancel(sender);

mButton1.setOnClickListener(new View.OnClickListener()

    {

      public void onClick(View v)

      {       

        new TimePickerDialog( EX06_10.this,

          new TimePickerDialog.OnTimeSetListener()

          {

          public void onTimeSet(TimePicker view,int hourOfDay,int minute)

            {

/*这里放更新时间的方法*/

            }         

          },mHour,mMinute,true).show();

      }

});

mButton2.setOnClickListener(new View.OnClickListener()

    {

      public void onClick(View v)

      {       

        new DatePickerDialog( EX06_10.this,

          new DatePickerDialog.OnDateSetListener()

          {

          public void onDateSet(DatePicker view,int year,int monthOfYear int dayOfMonth)

            {

/*这里放更新日期的方法*/

            }         

          },mYear,mMonth,mDay).show();

      }

    });

datePicker.init(mYear, mMonth, mDay, //初始化时的值,此时未点击’+’’-’可以无此方法,默认的是系统的日期,此法主要用来updateDisplay()

new DatePicker.OnDateChangedListener()

            {

@Override

public void onDateChanged(DatePicker view, int year, int monthOfYear,int dayOfMonth) //当点击DatePicker里的’+’’-’号时,实际改变的是year,monthOfYear,dayOfMonth的值。

{

        mYear=year;//赋值后界面的日期就不是初始值了,开始改变。

        mMonth= monthOfYear;

        mDay=dayOfMonth;

     

       // updateDisplay();同时更新TextView里的时间

  }

});

 

 

 

  timePicker.setIs24HourView(true);

timePicker.setOnTimeChangedListener(

new TimePicker.OnTimeChangedListener()

    {

      public void onTimeChanged(TimePicker view,int hourOfDay,int minute)

      {

        mHour=hourOfDay;

        mMinute=minute;

          /* tp默认是系统时间,监听方法主要是为了updateDisplay()的实现。*/

        updateDisplay();

      }

 

 

 

 

 

    });

 

 

private void updateDisplay()

  {

    tv.setText(

      new StringBuilder()//构造一个其中不带字符的字符串生成器,初始容量为 16 个字符。它比 StringBuffer 要快

.append(mYear).append("/")//向此添加指定的字符序列。

                         .append(format(mMonth + 1)).append("/")

                         .append(format(mDay)).append("")

                         .append(format(mHour)).append(":")

                         .append(format(mMinute))

    );

  }

  private String format(int x)

  {

    String s=""+x;

    if(s.length()==1) s="0"+s;

    return s;

  }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值