簡體   English   中英

如何設置每天3次鬧鈴?

[英]How to set alarm 3 times a day?

我想制作一個在特定時間調用意圖的程序,每天8點吃早餐,1點吃午餐,每天六點半吃晚餐。

我怎樣才能做到這一點? 這是因為如果我使用AlarmManager.INTERVAL_DAY / 3 ,它不能給出特定的時間。

還是我可以使用其他班級?

這是我的代碼:

package com.makansehat;

import java.util.Calendar;

import android.app.*;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
// import android.widget.EditText;
import android.widget.Toast;

/**
 * @author Prabu
 */
public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void startAlert(View view) {
        Calendar skr = Calendar.getInstance();

        pagi.set(Calendar.HOUR_OF_DAY, 8);
        pagi.set(Calendar.MINUTE, 53);

        Calendar siang = Calendar.getInstance();

        siang.set(Calendar.HOUR_OF_DAY, 8);
        siang.set(Calendar.MINUTE, 55);

        Calendar malam = Calendar.getInstance();

        malam.set(Calendar.HOUR_OF_DAY, 8);
        malam.set(Calendar.MINUTE, 59);

        // EditText text = (EditText) findViewById(R.id.time);
        // int i = Integer.parseInt(text.getText().toString());

        Intent intent = new Intent(getApplicationContext(), MyBroadcastReceiver.class);
        PendingIntent pi = PendingIntent.getBroadcast(getApplicationContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

        AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);

        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, pagi.getTimeInMillis(), siang.getTimeInMillis(), pi);

    }

}

您應該創建3個警報:

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, pagi.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pi);

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, siang.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pi);

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, malam.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pi);

在這里,我附加了“代碼”以喚醒設備以恰好在上午8:30觸發警報,此后每20分鍾觸發一次:

private AlarmManager alarmMgr;
private PendingIntent alarmIntent;
...
alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, AlarmReceiver.class);
alarmIntent = PendingIntent.getBroadcast(context, 0, intent, 0);

// Set the alarm to start at 8:30 a.m.
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 8);
calendar.set(Calendar.MINUTE, 30);

// setRepeating() lets you specify a precise custom interval--in this case,
// 20 minutes.
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
        1000 * 60 * 20, alarmIntent);

我希望您能理解我該怎么說,只需將您的第一次設置為calander,然后在使用for循環手動給定間隔之后就可以了:例如,時間表是觸發警報的第二,第三等時間間隔

for(int i=0;i<timelist.size();i++){

      alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
            timelist[i], alarmIntent);
   }

或執行任務的第二種方法采取三個警報管理器並設置您的時間。

希望對您有幫助...

暫無
暫無

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

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