簡體   English   中英

android SDK中的警報管理器

[英]Alarm manager In android SDK

private static final int HELLO_ID = 0;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Date dat  = new Date();//initializes to now
        Calendar cal_alarm = Calendar.getInstance();
        Calendar cal_now = Calendar.getInstance();
        cal_now.setTime(dat);
        cal_alarm.setTime(dat);
        cal_alarm.set(Calendar.MONTH,3);
        cal_alarm.set(Calendar.YEAR,2012);
        cal_alarm.set(Calendar.DAY_OF_MONTH,4);
        cal_alarm.set(Calendar.HOUR_OF_DAY,19);//set the alarm time
        cal_alarm.set(Calendar.MINUTE, 15);
        cal_alarm.set(Calendar.SECOND,0);


        if(cal_alarm.before(cal_now)){//if its in the past increment
            cal_alarm.add(Calendar.DATE,1);
        }

        Intent intent = new Intent(AlarmManagerTestActivity.this,
                AlarmReceiver.class);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(
                AlarmManagerTestActivity.this, 0, intent, 0);
        AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);

        alarmManager.set(AlarmManager.RTC_WAKEUP, cal_alarm.getTimeInMillis(), pendingIntent);  
    }

您好,我想在特定日期設置警報和通知,我正在使用此處提供的代碼,但無法在特定日期設置警報。請讓我知道這里的錯誤。

在此先感謝Trapti

設置警報代碼

Intent intent = new Intent(cont, AlarmReceiverActivity.class);
        intent.putExtra("id",getid);
        PendingIntent penintent = PendingIntent.getBroadcast(cont, getid,
                intent, 0);
        AlarmManager alm = (AlarmManager) cont.getSystemService(ALARM_SERVICE);
        alm.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), penintent);

給您的代碼添加一些更改

public class AlarmReceiverActivity extends BroadcastReceiver {
    private static final int MODE_WORLD_READABLE = 0;
    private NotificationManager nm;
    private Database_creat mDbHelper;
    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
        String descr = null;

        int id = intent.getIntExtra("id",0);



         nm = (NotificationManager) context
                .getSystemService(Context.NOTIFICATION_SERVICE);

              CharSequence from = "To Do List";
              Intent disintent = new Intent(context,Todo_display_win.class);

              disintent.putExtra("id",sub_id);
              Log.v("send to display Id", sub_id);
              CharSequence message = title;
              Notification notif = new Notification(R.drawable.notes,
                        "To do List", System.currentTimeMillis());
              notif.flags=Notification.FLAG_AUTO_CANCEL;

              PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
                      disintent,Notification.FLAG_AUTO_CANCEL);

              notif.setLatestEventInfo(context, from, message, contentIntent);
              nm.notify(1, notif);
              //nm.cancel(1);
              //notif.defaults |= Notification.FLAG_AUTO_CANCEL;




    }

    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM