【问题标题】:How to handle NotificationBar in android如何在android中处理NotificationBar
【发布时间】:2014-10-21 20:14:36
【问题描述】:

我尝试了这个问题的答案代码:How to put media controller button on notification bar?

通过调用

showNotification() 

方法我的应用程序被关闭。如何防止这种情况?如果手机api> = 16,我该如何处理这个方法才被调用。因为我认为它是从api 16开始可用的。

我读过,有较低 API 的解决方案:

import android.support.v4.app.NotificationCompat;

但我没有让它工作,所以我只是想阻止调用它。

我可以通过我的应用程序的 onDestroy() 从栏中删除通知吗?

【问题讨论】:

    标签: android android-notifications android-notification-bar


    【解决方案1】:

    该页面上的代码是使用RemoteViews 的最困难的情况,无论如何它看起来都很可疑。 (例如,它使用创建另一个 Notification 的构造函数创建 Notification 的子类。)

    通常的方法是使用NotificationCompat.Builder 来构建您的通知,并使用NotificationManagerNotificationManagerCompat 来显示和取消它。有关详细信息和示例代码,请参阅Notifications API Guide

    另请参阅Notifying the User 文档和Notifications design guide

    通常,您的应用应仅在其活动可见时显示通知。当用户点击通知时,它通常应该打开相应的活动,然后取消通知。

    【讨论】:

    • 我尝试在活动处于 onResume() 时取消通知。但是我的应用程序总是崩溃,或者如果我在“尝试”中这样做,它不会取消通知。有什么想法吗?
    • @prognewfag 如果 cancel() 抛出一个异常,它会告诉你为什么它不能取消通知。请注意该异常及其堆栈跟踪。仔细阅读。如果堆栈跟踪显示顶部异常是由另一个异常引起的,请查看该异常。如果您仍然感到困惑,请在此处发布堆栈跟踪并提供代码中的其他关键摘录。
    • @progNewFag 超出了 SO 问题的范围,但如果您不知道,请查看 logcat 输出以查看程序运行时发生的情况,包括异常堆栈跟踪和调试日志记录信息。此外,异常指示调用失败的原因。 try-catch 块允许您的程序继续运行,可能完全忽略异常,但不会导致失败。如果这些是新闻,请查找 Android + Java 编程方面的书籍或课程。
    猜你喜欢
    • 2016-05-20
    • 2014-02-07
    • 2011-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-28
    • 2011-12-14
    • 2011-09-17
    相关资源
    最近更新 更多