1

我想在我的应用程序中设置一个警报,即使我的应用程序关闭并在 2 小时后停止,每 10 分钟发送一次通知我真的需要它

我想要一个专业的警报来帮助我,这是给我的全科医生的,我应该明天提交

任何帮助将不胜感激

4

3 回答 3

6

我已经写了一个关于如何使用AlarmManager的非常详细的答案。你可以在这里阅读。

关于您的特定情况。您可以使用cancel()stopScheduling方法向调度程序添加一个方法:

public class TaskScheduler {
    PendingIntent mPendingIntent;
    AlarmManager mAlarmManager;

    public static void startScheduling(Context context) {
            Intent intent = new Intent(context, MyReceiver.class);
            mPendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
            mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
            mAlarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), 600, pendingIntent);
    }

    public static void stopScheduling() {
       mAlarmManager.cancel(mPendingIntent);
    }
}

因此,当您想停止调度时,您可以调用该方法。

现在我不知道有任何简单的方法会导致AlarmManager2 小时后自行停止,但您可以编写另一个调度程序,该调度程序将在 2 小时后启动以删除第一个调度程序。

我建议你一步一步来。首先尝试实现一个简单的警报并使用参数来查看调度如何工作,然后尝试删除此警报。一旦完成这项工作,您就可以轻松完成其余的工作,因为这只是一些基本的编程任务。另请阅读我在此处编写的详细答案,因为它提供了设置基本警报所需的所有信息。

于 2012-05-07T14:50:30.893 回答
4

阅读AlarmManager

这是一个例子

于 2012-05-07T14:47:47.537 回答
2

正如 Tim 和 Amokrane 所说,AlarmManager 是你的朋友;)

http://developer.android.com/reference/android/app/AlarmManager.html

示例:

    // get a Calendar object with current time
 Calendar cal = Calendar.getInstance();
 // add 5 minutes to the calendar object
 cal.add(Calendar.MINUTE, 5);
 Intent intent = new Intent(ctx, AlarmReceiver.class);
 intent.putExtra("alarm_message", "O'Doyle Rules!");
 // In reality, you would want to have a static variable for the request code instead of 192837
 PendingIntent sender = PendingIntent.getBroadcast(this, 192837, intent, PendingIntent.FLAG_UPDATE_CURRENT);

 // Get the AlarmManager service
 AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
 am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), sender);
于 2012-05-07T14:54:05.873 回答