использовать BroadcastReceiver для установки будильника? - PullRequest
0 голосов
/ 11 декабря 2011

Можете ли вы использовать BroadcastReceiver для установки «будильника». Вроде не уведомление, а будильник?

Так что, в принципе, если бы я нажал кнопку, он мог бы установить будильник на 20 минут с этого момента или любой другой переменной. Я могу понять, как использовать его для настройки будильника через 20 минут с текущего времени, но я могу сделать тост-уведомление, насколько я получил.

Обратите внимание, что мой код равен 20 секундам в моем коде

public class SimpleSleepActivity extends Activity {
    /** Called when the activity is first created. */

    Button setAlarm, setTimer;
    int hours = 1, alarmSec = 10;
    Toast mToast;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        setAlarm = (Button) findViewById(R.id.bSetAlarm);
        setTimer = (Button) findViewById(R.id.bSetTimer);
        setTimer.setOnClickListener(mAlarmFromNow);
    }

    private OnClickListener mAlarmFromNow = new OnClickListener() {
        public void onClick(View v) {

            // When the alarm goes off, broadcast an Intent to the 
            // BroadcastReceiver. This is an Intent with an explicit class
            // name to have a receiver instantiated and called, and then 
            // create an IntentSender to have the intent executed as a broadcast.
            Intent intent = new Intent(SimpleSleepActivity.this,
                    AlarmFromNow.class);
            PendingIntent sender = PendingIntent.getBroadcast(
                    SimpleSleepActivity.this, 0, intent, 0);

            // Finding the current time and setting and alarm for XX seconds
            // from that time
            Calendar calendar = Calendar.getInstance();
            calendar.setTimeInMillis(System.currentTimeMillis());
            calendar.add(Calendar.SECOND, alarmSec);

            // Scheduling the alarm
            AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
            am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender);

            if (mToast != null) {
                mToast.cancel();
            }
            mToast = Toast.makeText(SimpleSleepActivity.this,
                    //Show the user what they imputed
                    "The alarm will go off in " + alarmSec + " Seconds", Toast.LENGTH_LONG);
            mToast.show();
        }
    };
}

Мой другой класс такой:

public class AlarmFromNow extends BroadcastReceiver {

    public void onReceive(Context context, Intent intent) {
        //Display a toast after alarmSec is counted
        Toast.makeText(context, R.string.alarm_from_now, Toast.LENGTH_LONG)
                .show();
    }
}

1 Ответ

0 голосов
/ 11 декабря 2011

Вы, вероятно, хотите использовать AlarmManager .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...