如何在不打开应用程序的情况下运行警报

测试1996

根据这个问题需要后台服务。

即使用户退出应用程序,如何保持服务在后台运行?

我试图这样做,但我无法确定我应该在哪里调用服务内部的警报管理器。

我的服务

这是我试过的服务类。

public class MyService extends Service{

    PendingIntent pendingIntent;
    AlarmManager alarmManager;

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // Query the database and show alarm if it applies

        // I don't want this service to stay in memory, so I stop it
        // immediately after doing what I wanted it to do.
        pendingIntent = PendingIntent.getBroadcast(
                this.getApplicationContext(), 280192, intent, PendingIntent.FLAG_CANCEL_CURRENT);

        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(System.currentTimeMillis());
        calendar.set(Calendar.HOUR_OF_DAY, 11);
        calendar.set(Calendar.MINUTE, 55);
        calendar.set(Calendar.SECOND,00);

        alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);

        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
                AlarmManager.INTERVAL_FIFTEEN_MINUTES, pendingIntent);
//        stopSelf();

        return START_NOT_STICKY;
    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onDestroy() {
//        // I want to restart this service again in one minute
//        AlarmManager alarm = (AlarmManager)getSystemService(ALARM_SERVICE);
//        alarm.set(
//                alarm.RTC_WAKEUP,
//                System.currentTimeMillis() + (1000 * 60 * 1),
//                PendingIntent.getService(this, 0, new Intent(this, MyService.class), 0)
//        );
    }
}

即使应用程序未运行,请指导我向用户发出特定时间段的提醒。谢谢你

阿比

您不需要为此用例创建自己的服务,您可以为此使用 Android 框架中的 Alarmservice,它可以启动应用程序(即使应用程序未运行)和时间设置,前提是手机处于开机状态。现在要设置闹钟,可以在任何视图(Activity/Fragment)中调用。您可以创建一个按钮并设置操作以根据需要设置闹钟。在调用警报时,您可以使用挂起的广播接收器进行任何后续操作。调用如下设置闹钟,你可以使用 Pending Broadcast 意图来做你的事情。相信我,即使您的应用程序没有运行,它也会工作。注意 - AlarmBroadCastReceiver 应该是清单接收器,即在清单文件中声明。

private void setAlarm(int type) {


    // AlarmManager
    AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);

    // Alarm type
    int alarmType = AlarmManager.RTC;

    Calendar time = Calendar.getInstance();

    time.setTimeInMillis(System.currentTimeMillis());


    switch (type) {

    case 1:
        // Set Alarm for next 20 seconds
        time.add(Calendar.SECOND, 20);
        break;

    case 2:
        // Set Alarm for next 2 min
        time.add(Calendar.MINUTE, 2);
        break;

    case 3:
      // Set Alarm for next 30 mins
        time.add(Calendar.MINUTE, 30);
        break;

    }


    Intent broadcastIntent = new Intent(this, AlarmBroadCastReceiver.class);

    broadcastIntent.putExtras(sourceIntent);

    Random generator = new Random();

    PendingIntent pendingAlarmIntent = PendingIntent.getBroadcast(this,
            generator.nextInt(), broadcastIntent,
            PendingIntent.FLAG_ONE_SHOT);
    alarmManager.set(alarmType, time.getTimeInMillis(), pendingAlarmIntent);

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在不打开应用程序的情况下运行android程序?

来自分类Dev

如何在不打开Mac OS X中任何终端窗口的情况下运行Python 3 tkinter应用程序?

来自分类Dev

在不打开R Studio的情况下运行Web应用程序

来自分类Dev

如何在不打开SMS应用程序的情况下发送SMS

来自分类Dev

Mac上的Pyinstaller:如何在不先打开终端的情况下打开应用程序?

来自分类Dev

如何在不打开编辑器的情况下运行python程序(用Enthought Canopy编写)?

来自分类Dev

如何在不打开编辑器的情况下运行python程序(用Enthought Canopy编写)?

来自分类Dev

Angular / Ionic4如何在不打开本机短信应用程序的情况下发送短信

来自分类Dev

在不打开应用程序的情况下同步OneNote

来自分类Dev

如何在无需打开应用程序的情况下显示对话框

来自分类Dev

默认情况下,如何在GNOME中打开应用程序的新实例?

来自分类Dev

如何在不打开 Visual Studio 中的浏览器的情况下运行 URL?

来自分类Dev

Android开发:如何在不使用应用程序的情况下运行线程

来自分类Dev

如何在没有python控制台的情况下运行tkinter应用程序

来自分类Dev

如何在不运行应用程序的情况下切换日食工作区?

来自分类Dev

如何在没有提示的情况下以管理员身份运行应用程序?

来自分类Dev

如何在不使用部分唤醒锁的情况下保持应用程序运行

来自分类Dev

如何在没有屏幕记录的情况下运行cherrypy应用程序?

来自分类Dev

如何在不安装Windows的情况下运行.Net应用程序?

来自分类Dev

如何在不调用应用程序回调的情况下运行单元测试

来自分类Dev

如何在不知道名称的情况下从终端运行应用程序?

来自分类Dev

如何在GPS开启的情况下使应用程序持续运行?

来自分类Dev

如何在eclipse中没有main方法的情况下运行JavaFX应用程序?

来自分类Dev

如何在没有 Eclipse 的情况下运行 Spring Boot 应用程序?

来自分类Dev

如何在不打开文件的情况下选择文件?

来自分类Dev

如何在未打开应用程序的情况下始终在后台运行线程以从数据库中读取数据

来自分类Dev

AppDelegate中的iOS应用程序功能,用于在不打开快捷方式的情况下

来自分类Dev

在不打开应用程序的情况下通过操作按钮关闭正在进行的Android通知

来自分类Dev

在Loopback.js中,如何在不运行应用程序的情况下运行独立脚本?

Related 相关文章

  1. 1

    如何在不打开应用程序的情况下运行android程序?

  2. 2

    如何在不打开Mac OS X中任何终端窗口的情况下运行Python 3 tkinter应用程序?

  3. 3

    在不打开R Studio的情况下运行Web应用程序

  4. 4

    如何在不打开SMS应用程序的情况下发送SMS

  5. 5

    Mac上的Pyinstaller:如何在不先打开终端的情况下打开应用程序?

  6. 6

    如何在不打开编辑器的情况下运行python程序(用Enthought Canopy编写)?

  7. 7

    如何在不打开编辑器的情况下运行python程序(用Enthought Canopy编写)?

  8. 8

    Angular / Ionic4如何在不打开本机短信应用程序的情况下发送短信

  9. 9

    在不打开应用程序的情况下同步OneNote

  10. 10

    如何在无需打开应用程序的情况下显示对话框

  11. 11

    默认情况下,如何在GNOME中打开应用程序的新实例?

  12. 12

    如何在不打开 Visual Studio 中的浏览器的情况下运行 URL?

  13. 13

    Android开发:如何在不使用应用程序的情况下运行线程

  14. 14

    如何在没有python控制台的情况下运行tkinter应用程序

  15. 15

    如何在不运行应用程序的情况下切换日食工作区?

  16. 16

    如何在没有提示的情况下以管理员身份运行应用程序?

  17. 17

    如何在不使用部分唤醒锁的情况下保持应用程序运行

  18. 18

    如何在没有屏幕记录的情况下运行cherrypy应用程序?

  19. 19

    如何在不安装Windows的情况下运行.Net应用程序?

  20. 20

    如何在不调用应用程序回调的情况下运行单元测试

  21. 21

    如何在不知道名称的情况下从终端运行应用程序?

  22. 22

    如何在GPS开启的情况下使应用程序持续运行?

  23. 23

    如何在eclipse中没有main方法的情况下运行JavaFX应用程序?

  24. 24

    如何在没有 Eclipse 的情况下运行 Spring Boot 应用程序?

  25. 25

    如何在不打开文件的情况下选择文件?

  26. 26

    如何在未打开应用程序的情况下始终在后台运行线程以从数据库中读取数据

  27. 27

    AppDelegate中的iOS应用程序功能,用于在不打开快捷方式的情况下

  28. 28

    在不打开应用程序的情况下通过操作按钮关闭正在进行的Android通知

  29. 29

    在Loopback.js中,如何在不运行应用程序的情况下运行独立脚本?

热门标签

归档