【问题标题】:How to pause and resume an Android Alarm?如何暂停和恢复 Android 闹钟?
【发布时间】:2012-12-18 04:08:16
【问题描述】:

我正在开发一个闹钟,它会在定义的时间间隔内振动。因此,如果我选择 5 秒,应用程序将每隔 5 秒振动一次。但我需要停止、暂停和恢复应用程序。

这是我的课:

public class AndroidAlarmService extends Activity {

private PendingIntent pendingIntent;
private Chronometer chronometer;
private Intent myIntent;
AlarmManager alarmManager;
Calendar calendar;
private long mTimeWhenStopped;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Button buttonStart = (Button) findViewById(R.id.startalarm);
    Button buttonStop = (Button) findViewById(R.id.stopalarm);
    Button buttonPause = (Button) findViewById(R.id.pausealarm);
    Button buttonResume = (Button) findViewById(R.id.resumealarm);

    chronometer = ((Chronometer) findViewById(R.id.clock_time));

    myIntent = new Intent(AndroidAlarmService.this,
            MyAlarmService.class);
    pendingIntent = PendingIntent.getService(
            AndroidAlarmService.this, 0, myIntent, 0);

    alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
    calendar = Calendar.getInstance();

我用这个方法启动它:

buttonStart.setOnClickListener(new Button.OnClickListener() {

        @Override
        public void onClick(View arg0) {

            int initialValue = 0;

            chronometer.setBase(SystemClock.elapsedRealtime() + initialValue);
            chronometer.start();

            calendar.setTimeInMillis(System.currentTimeMillis());

            alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
                    calendar.getTimeInMillis(), 5 * 1000, pendingIntent);

            Toast.makeText(AndroidAlarmService.this, "Start Alarm",
                    Toast.LENGTH_LONG).show();
        }
    });

这是用来暂停的:

    buttonPause.setOnClickListener(new Button.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            stopRunning();

            mTimeWhenStopped = chronometer.getBase() - SystemClock.elapsedRealtime();

            // Tell the user about what we did.
            Toast.makeText(AndroidAlarmService.this, "Resume!",
                    Toast.LENGTH_LONG).show();

        }
    });

我想从应用程序的启动点恢复应用程序。 我该怎么做?

谢谢你!

【问题讨论】:

    标签: android alarmmanager android-alarms


    【解决方案1】:

    【讨论】:

    • 谢谢。但这正是我用来做例子的链接。
    • 在闹钟停止而不是恢复后尝试重置闹钟
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 1970-01-01
    • 1970-01-01
    • 2014-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多