`
21jhf
  • 浏览: 130330 次
  • 来自: ...
社区版块
存档分类
最新评论

Android学习之路(一)通知Notification

 
阅读更多

这是调用通知的函数

 private void showNotification(PlayWarper mPlayWarper) {
        mNotificationManager = (NotificationManager) this.getSystemService(NOTIFICATION_SERVICE);
        intent = new Intent(mContext, FileListLocalActivity.class);

        pendingIntent = PendingIntent.getActivity(mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
        RemoteViews rv = new RemoteViews(getPackageName(), R.layout.notice);
        String name = mPlayWarper.musicInfo.getName();
  mNotification = new Notification(android.R.drawable.ic_media_play, name, System.currentTimeMillis());

        mNotification.contentIntent = pendingIntent;
        mNotification.contentView = rv;
        // mNotification.setLatestEventInfo(this, "正在播放:" + name, name,
        // pendingIntent);
         mNotification.flags |= Notification.FLAG_ONGOING_EVENT; //
        // 将此通知放到通知栏的"Ongoing"即"正在运行"组中
        mNotification.flags |= Notification.FLAG_NO_CLEAR; //
        mNotification.flags |= Intent.FLAG_ACTIVITY_SINGLE_TOP;

        // 表明在点击了通知栏中的"清除通知"后,此通知不清除,经常与FLAG_ONGOING_EVENT一起使用
         mNotificationManager.notify(Constant.NOTICE_ID, mNotification);
    }

 

 

开发Notification遇到问题

 

1,点击通知无Activity返回,如同没有点击(有些人倒想实现这样的效果)

这个问题很二,哈哈,原因就是AndroidManifest.xml没有定义NoticeActivity.

 这行代码决定点击通知后跳转到哪个Activity

intent = new Intent(mContext, FileListLocalActivity.class);

 

2,点击通知后有Activity了,但是再次点击无任何操作.

这个原因是创建PendingIntent时最后一个参数flag定义不正确,应该是

PendingIntent.getActivity(mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
FLAG_ONE_SHOT是只能点击通知一次

FLAG_ONE_SHOT, FLAG_NO_CREATE, FLAG_CANCEL_CURRENT, FLAG_UPDATE_CURRENT,

 

3,通知内容不是定义的layout,而是文字信息

 // mNotification.setLatestEventInfo(this, "正在播放:" + name, name,
        // pendingIntent);
注释掉这样的代码就可以显示R.layout.notice的layout到通知里面.

 

4,点击通知后每次都新建一个Activity,不能把后台的Activity直接显示到前台

 解决方法是修改点击后出现的Activity在AndroidManifest.xml中加上launchMode,代码如下:

     <activity
            android:name=".FileListLocalActivity"
            android:launchMode="singleTask" />

 

launchMode的解释相见SDK文档http://developer.android.com/reference/android/R.attr.html#launchMode

 

分享到:
评论

相关推荐

    Android 通知栏Notification的全面整合学习(各种姿势都有,供您选择)

    在Android系统中,通知栏(Notification)是一种至关重要的交互手段,它允许应用在不干扰用户当前操作的情况下,向用户传达信息或提醒。本资源包针对Android通知栏的使用进行了全面整合,涵盖了各种应用场景和实现...

    notification-Android带按钮自定义通知栏

    在Android开发中,通知栏(Notification)是向用户传达应用后台事件或信息的重要途径。一个标准的通知通常包含标题、文本...这个项目是一个很好的学习资源,对于想要增强其应用通知功能的Android开发者而言非常有价值。

    Android 学习(27)Notification 通知

    在Android开发中,Notification是应用与用户交互的重要方式之一,尤其在后台运行时,通过Notification向用户展示消息,提醒用户有新的活动或者信息。在本篇文章中,我们将深入探讨`Notification`及其相关类,如`...

    android学习之toast和notification

    此外,了解Android的通知渠道(Notification Channels)也是现代Android开发中不可或缺的一部分。自Android Oreo(8.0)起,系统要求对通知进行分类,创建并管理通知渠道可以确保你的应用能在不同版本的Android上...

    Android高级应用源码-实现Notification的通知栏常驻.rar

    本资源“Android高级应用源码-实现Notification的通知栏常驻.rar”提供了一套实现通知栏常驻的源代码,这对于开发者来说是一个很好的学习和参考材料。 首先,我们要理解什么是常驻通知。在Android中,常驻通知是指...

    Android 通知栏Notification的全面整合学习(完整项目源码)附配套博文

    这个是通知栏框架(Notificaiton)的全面学习,里面把大概所有的情况都列了出来,通过一个DEMO让你了解它的大致所有使用过程。 可以通过以下博文进行配套了解(有效果图): ...

    Android自定义通知栏Notification

    在Android开发中,自定义通知栏Notification是一种提升用户体验的重要手段。Notification是系统级的消息提示,它可以在用户不直接与应用交互时提供信息,比如在状态栏显示消息、更新或者提醒。本项目“Android自定义...

    android Notification通知消息学习(NotificationManager)

    总之,“android Notification通知消息学习(NotificationManager)”这篇博客很可能是对Android通知机制的全面讲解,包括理论知识和实践技巧,对于希望提升Android应用用户体验的开发者来说是一份有价值的资源。...

    Android应用源码之实现Notification的通知栏常驻-IT计算机-毕业设计.zip

    在标题"Android应用源码之实现Notification的通知栏常驻"中,主要关注的是如何使Notification即使在用户离开应用后仍然保留在通知栏,提供持续的可见性。这通常涉及到Android的Notification持久性和优先级设置。 ...

    Android studio发送状态栏通知Notifycation demo

    在Android开发中,状态栏通知(Notification)是与用户交互的一种常见方式,它可以在不干扰用户当前活动的情况下向用户传达信息。本示例是关于如何使用Android Studio创建一个简单的状态栏通知的演示。通过理解并...

    AndroidNotification

    在Android系统中,Notification是应用与用户...总之,`AndroidNotification`项目提供了一个全面学习和测试Android通知功能的平台,开发者可以通过此项目深入了解Notification的各个方面,提升自己的Android开发技能。

    安卓Android源码——实现Notification的通知栏常驻.rar

    本文将深入解析如何通过Android源码实现一个通知栏常驻的Notification。 首先,我们需要理解Notification的工作原理。在Android系统中,Notification是由`NotificationManager`服务管理的,开发者通过`Notification...

    Android应用源码之实现Notification的通知栏常驻.zip

    在Android开发中,Notification是应用与用户交互的重要方式之一,特别是在后台运行时,它能将信息传达给用户,即使应用不在前台也能保持可见性。"Android应用源码之实现Notification的通知栏常驻"这个主题主要关注...

    Android应用源码之notification.zip

    "Android应用源码之notification.zip"这个压缩包很可能是包含了关于Android通知(Notification)系统实现的源代码示例,可以帮助开发者深入理解如何在自己的应用中创建、管理和定制通知。 1. **Notification的基本...

    Android音乐播放器(含notification通知栏操作,自动获取本地音乐操作)

    本项目"Android音乐播放器(含notification通知栏操作,自动获取本地音乐操作)"旨在教授如何构建一个具备通知栏控制功能并能自动扫描本地音乐库的播放器。以下是关于这个项目的关键知识点: 1. **通知栏操作...

    Android代码-状态栏通知小图标notification通知.rar

    在Android开发中,状态栏通知(Notification)是与用户交互的一种重要方式,它可以在不干扰用户当前活动的情况下向用户传达信息。"Android代码-状态栏通知小图标notification通知.rar"这个压缩包很可能是包含了一些...

    Android高级应用源码-状态栏通知小图标,notification通知.zip

    在Android开发中,状态栏通知(Notification)是与用户交互的一种重要方式,它可以在应用程序后台运行时向用户提供信息。此压缩包"Android高级应用源码-状态栏通知小图标,notification通知.zip"显然包含了关于如何...

    android Notification Demo

    在Android系统中,通知(Notification)是应用与用户交互的重要方式之一,特别是在后台运行时。"android Notification Demo" 是一个示例项目,旨在演示不同类型的Android通知及其使用方法。在这个项目中,开发者可能...

    Android-Notification-Example-master源码

    在Android开发中,通知(Notification)是用户界面中不可或缺的一部分,它允许应用在不干扰用户当前活动的情况下传达重要信息。`Android-Notification-Example-master`是一个专注于Android通知系统的示例项目,非常...

    状态栏通知小图标,notification通知

    状态栏通知小图标,通常被称为`Notification`,是Android系统中一种重要的用户界面元素,用于在状态栏上显示应用的提醒或消息。这些小图标在用户不与应用直接交互时提供了一个简短的信息提示,帮助用户了解应用的...

Global site tag (gtag.js) - Google Analytics