【问题标题】:how to show notification on device start up如何在设备启动时显示通知
【发布时间】:2012-10-03 14:19:09
【问题描述】:

我正在 android 中开发通知应用程序,它显示我使用日期选择器设置的特定日期和时间的通知。如果我的应用程序在后台运行,它会正确显示。但是当我强制停止我的应用程序或设备关闭并重新启动时,通知不会显示。即使应用程序强制关闭或设备重新启动,如何显示通知。

【问题讨论】:

    标签: android service android-notifications


    【解决方案1】:

    你不能。通知附加到应用程序的上下文中。如果应用程序被杀死/销毁,您的通知也会随之消失。

    您可以做的是在您的应用程序或其服务启动后重新创建这些通知。为此,请确保您确实捕获了android.intent.action.BOOT_COMPLETED 广播,以便自动实现这一点。

    【讨论】:

    • 是的,您也可以通过服务创建通知。但是在通知的情况下,您可以在 BroadcastReceiver 中获得 android.intent.action.BOOT_COMPLETED 事件后简单地重新创建它们
    • 我为我工作。我只是在广播类中调用了我的活动。随着设备在启动后启动,我的活动开始并且计时器也开始。仅当使用布尔值检查从广播类调用活动时,我才在该活动中使用 movetoback() 方法。最后我在该活动的清单中使用了 android:launchMode="singleInstance" ,以便从启动屏幕打开应用程序。
    • 现在我的应用已经在安卓市场上线了。非常感谢。这是我的应用程序的链接。 https://play.google.com/store/apps/details?id=com.redorange.c4mh&feature=search_result#?t=W251bGwsMSwyLDEsImNvbS5yZWRvcmFuZ2UuYzRtaCJd
    【解决方案2】:

    您应该考虑使用AlarmManager 而不是服务。 使用自定义意图在所需的日期/时间设置警报。在 BroadcastReceiver 中,您创建并显示通知。

    如果设备重新启动,您可能还需要监听 BOOT_COMPLETED Intent 并重置警报。

    编辑:

    一个例子:

    long time = // time in milliseconds of when you want your Alarm
    
    PendingIntent mIntent = PendingIntent.getBroadcast(context,
                    0, new Intent("YOUR_CUSTOM_INTENT"), PendingIntent.FLAG_UPDATE_CURRENT);
    
    AlarmManager am = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);        
    am.set(AlarmManager.RTC_WAKEUP,
                            time, mIntent );
    

    然后在 BroadcastReceiver 中捕获 YOUR_CUSTOM_INTENT 意图,显示通知并设置以下警报。

    【讨论】:

    • 但是有问题,我正在使用通知管理器,并在我的应用程序中自动生成未来通知日期和时间。当所需的通知时间匹配时,将显示通知并再次在共享首选项文件中设置下一个通知日期和时间。如果我的服务关闭,那么下一个通知日期将如何设置。任何解决方案,伙计们。
    • 如果您使用 AlarmManager,当您的 BroadcastReceiver 收到 Intent 时,您会显示通知并为以下日期设置新警报。 您不需要服务。您设置的警报将在您的应用程序关闭后继续存在,并且您将收到您为警报设置的 Intent。在时机成熟时。如果设备重新启动,您会捕获 BOOT_COMPLETED 意图并重置上次设置的警报(您需要在某处记住日期和时间)或如果日期已过则直接显示。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多