java - 提醒作为 Android 应用程序的一部分

标签 java android android-studio

我正在android studio上开发一个项目,它是关于药物提醒的,我遇到了一些困难,如何在其中导入提醒。 例如,我希望用户将时间设置为他想要服药的时间,然后在那时提醒他。 所以,我搜索了很多,但没有找到合适的东西。 提醒是我的应用程序的一部分,所以我希望它尽可能简单。 希望你能理解我。

我尝试了这段代码,但没有成功!

            final Calendar calender = Calendar.getInstance();
            final int hours = calender.get(Calendar.HOUR_OF_DAY);
            final int minutes = calender.get(Calendar.MINUTE);
            alarm.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    TimePickerDialog pickTime = new TimePickerDialog(AddMedication.this, new TimePickerDialog.OnTimeSetListener() {
                        @Override
                        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                            alarm.setText(hourOfDay + ":" + minute);
                        }
                    }, hours, minutes, true);
                }
            });

最佳答案

您在帖子中展示的方法适用于应用程序始终在前台运行的情况,但通常情况并非如此。

您需要的解决方案是使用 AlarmManager 和 BroadcastReceiver 来完成此操作:

AlarmManager alarmMgr;
PendingIntent alarmIntent;

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

alarmMgr.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
        SystemClock.elapsedRealtime() +
        60 * 1000, alarmIntent); //this alarm for example is set for the next minute

在您的 AlarmReceiver 类中,您将拥有 onReceive 方法:

public class AlarmReceiver extends BroadcastReceiver {
   @Override
   public void onReceive(Context context, Intent intent) {
      //Either start an activity or send a notification here
   }
}

关于java - 提醒作为 Android 应用程序的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36837534/

相关文章:

JavaFX : An object created in a method and used in another class?

Android 和自动更新数据库

android - 如何从弹出窗口检索值到主窗口?

android - 在另一台计算机上运行 Android 模拟器

java - JetBrains 如何为其 IDE 创建 .exe 文件?

java - 在 Bash 中使用 Maven Exec 插件

java - 如何将文件存储在Android的缓存目录中?

java - 在主屏幕上使用后台服务绘制位图图像

java - Service 和PeriodicWorkRequest() 之间的区别

java - Android 转换器应用程序在转换时崩溃