请大家先看这个说明:
相信大家在使用课本或者其他资料时候常常看到类似下面的代码。而且试了,挺好,下拉,点击,然后就有跳转。
但是点击后提示栏中原有图标不消失,而更深入一点发现如果要传递参数,但是传递的参数都一样,要么都是最新的,要么都是最旧的,这跟参数有关系。好了,废话不多说,几个注意点我在下面的代码中圈出来:
//声明通知(消息)管理器
NotificationManager m_NotificationManager;
Intent m_Intent;
PendingIntent m_PendingIntent;
//声明Notification对象
Notification m_Notification;
//添加通知
m_NotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
//点击通知时转移内容
m_Intent = new Intent(FileTranferService.this, AfterClick.class);
Log.e("Before Notice",desPath);
Bundle bundle = new Bundle();
bundle.putString("desPath", desPath);
m_Intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
m_Intent.putExtras(bundle);
//主要是设置点击通知时显示内容的类
m_PendingIntent = PendingIntent.getActivity(FileTranferService.this, Setting.NoticeID, m_Intent, PendingIntent.FLAG_CANCEL_CURRENT);
//要想参数各自不同,需要这个ID不同,在谷歌中这个参数描述可能会误导你以为这个参数无所谓而一直使用0
//构造Notification对象
m_Notification = new Notification();
//
m_Notification.contentIntent=m_PendingIntent;
//点击后自动清除,图示项只有这样设置后才能在点击后自动删除
m_Notification.flags|=Notification.FLAG_AUTO_CANCEL;
//设置通知在状态栏显示的图标
m_Notification.icon = R.drawable.download;
//当我们点击通知时显示的内容
m_Notification.tickerText = desPath.replaceFirst(temp2+"/", "")+"下载完成";
//通知时发出默认的声音
m_Notification.defaults = Notification.DEFAULT_SOUND;
//设置通知显示的参数
m_Notification.setLatestEventInfo(FileTranferService.this,desPath.replaceFirst(temp2+"/", ""), "下载完成", m_PendingIntent);
//可以理解为执行这个通知
m_NotificationManager.notify(Setting.NoticeID++, m_Notification);
//同样,ID应该不同,这个不多说,这个容易找到相关说明
原文:http://blog.163.com/caoguoqiang_dlut/blog/static/10658914220114167219320/
分享到:
相关推荐
注意,`NotificationCompat.Builder`仍然用于构建通知,但需要传递`channelId`作为第二个参数。如果你的应用需要兼容更低版本的Android,可以使用`NotificationCompat`类提供的方法。 在`android-...
下载过程中,为了给用户反馈,我们可以使用Android的Notification机制。Notification可以在状态栏显示提示,即使应用不在前台运行,用户也能得知下载进度或完成情况。创建Notification需要使用`NotificationCompat....
总结,`Notification`在Android应用中起着至关重要的作用,用于在用户不直接与应用交互时传递信息。理解和熟练使用`Notification`的创建和管理,能够提升用户体验,确保应用的消息及时传达给用户。通过`Notification...
Notification的使用在Android开发中是十分重要的,它用于在用户不直接与应用交互时提供一种信息传递的方式。当应用在后台运行或者用户没有打开应用时,Notification可以在状态栏显示图标和简短信息,吸引用户的注意...
总结起来,Android中的Notification是与用户交互的关键组件,允许开发者在不中断用户当前任务的情况下传递重要信息。通过巧妙地使用`NotificationManager`、`Notification`和`PendingIntent`,开发者可以创建丰富...
然后,它会将Notification传递给`StatusBarService`,这是系统UI的一部分,负责在状态栏显示Notification图标,并在通知抽屉中展示完整的通知内容。 关于拦截其他app的Notification,Android提供了Notification ...
- 查看`Notification`的源码,我们可以看到`Notification`类是如何封装和传递通知信息的,以及如何与系统服务进行交互。 - `NotificationCompat.Builder`的源码揭示了如何构建一个复杂的`Notification`,包括如何...
总之,Android的Notification机制允许开发者在不打断用户当前操作的情况下向用户传递信息。通过合理使用`NotificationManager`、`Notification.Builder`以及`PendingIntent`,可以创建具有不同特性和交互的丰富通知...
消息推送支持两种显示类型,一种为NOTIFICATION和PAYLOAD,通过showType参数传递到客户端。 NOTIFICATION表示正常消息类型,而PAYLOAD表示自定义消息类型,即消息内容格式及显示方式自定义,仅支持通过Handler方式...
13.3.6 组件间参数传递 343 本章小结 347 第14章 Broadcast Receiver和Notification 348 14.1 Broadcast Receiver 348 14.1.1 音频播放案例 349 14.1.2 编写音频播放Broadcast Receiver 350 14.1.3 注册音频...
2. 参数传递: 在页面跳转过程中,我们经常需要传递数据。这可以通过Intent的putExtra()方法来实现,将键值对放入Intent中。在目标Activity中,可以使用getExtras()获取这些数据。理解如何正确地传递和接收数据是...
在构建`Notification`时,将`PendingIntent`作为参数传递给`setContentIntent()`方法。 ```java Notification.Builder builder = new Notification.Builder(this) // ... .setContentIntent(pendingIntent); ```...
传递一个long类型的数组,数组元素表示震动的模式(毫秒为单位): ```java long[] vibratePattern = {0, 100, 200, 300}; builder.setVibrate(vibratePattern); ``` 这里的数组[0, 100, 200, 300]表示静止100毫秒...
最常见的方法是`vibrate()`,它可以接收一个`long`类型的数组参数,表示震动的模式。例如,如果我们想要简单地振动一段时间,可以这样写: ```java long duration = 500; // 持续500毫秒 vibrator.vibrate(duration...
4.1.4 布局参数(LayoutParams) 4.2 常用Widget组件 4.2.1 文本框视图(TextView) 4.2.2 按钮(Button) 4.2.3 图片按钮(ImageButton) 4.2.4 编辑框(EditText) 4.2.5 多项选择(CheckBox) 4.2.6 单项选择...
2. **Intent**:Intent是Android中的一个消息传递对象,用于启动或与另一个组件进行通信。`Intent intent = new Intent(this, TargetActivity.class);`创建一个Intent用于启动新的Activity,而`startActivity(intent...
在Demo中,我们通常会看到如何创建新的Activity,以及如何使用Intent启动它,同时传递参数。 2. **布局文件(Layout)**:XML布局文件定义了应用程序的用户界面。例如,LinearLayout、RelativeLayout、...
Intent用于启动Activity或传递消息,是Android组件间通信的重要机制。 2. **BroadcastReceiver**:广播接收器用于监听系统或自定义广播事件,即使应用在后台运行也能接收到通知。 3. **ContentProvider**:内容...
在Android应用开发中,Status Bar Notifications是用户与应用交互的重要方式之一。它们通常显示在设备顶部的...同时,这也将有助于你理解Android系统的事件传递机制和UI更新策略,对于提升整体的编程能力非常有帮助。
在Android开发中,PendingIntent是一个非常重要的组件,它允许我们延迟执行某个操作或者将操作传递给其他应用。这个组件在很多场景下都有广泛的应用,比如通知、BroadcastReceiver、Service等。接下来,我们将深入...