package demo.notification;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
/**
*
* 由于BroadcastReceiver并没有提供可视化的信息提示
* 要想实现可视化的信息提示,比如,显示广播信息的内容,图标,以及振动等信息
* 可以使用NotificationManager和Notification来实现
* 一、获取系统级的服务NotificationManager,通过调用getSystemService(NOTIFICATION_SERVICE)来实现
* 二、然后实例化Notification,设置其属性
* 三、通过NotificationManager发出通知
*/
public class MainActivity extends Activity {
private Button btnSend, btnCancel;
private Notification n;
private NotificationManager nm;
private static final int NOTIFICATION_ID = 1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.btnSend = (Button)this.findViewById(R.id.send);
this.btnCancel = (Button)this.findViewById(R.id.cancel);
this.btnSend.setOnClickListener(sendListener);
this.btnCancel.setOnClickListener(cancelListener);
//实例化NotificationManager
nm = (NotificationManager)this.getSystemService(NOTIFICATION_SERVICE);
n = new Notification();
//设置Notification的属性
n.icon = R.drawable.icon; //显示的图标
n.tickerText = "Notification Demo"; //显示的内容
n.when = System.currentTimeMillis(); //显示时间
}
private View.OnClickListener sendListener = new View.OnClickListener() {
@Override
public void onClick(View arg0) {
//发送通知
Intent intent = new Intent(MainActivity.this, MainActivity.class); //首先实例化一个Intent
//看到这里,想必大家会问PendingIntent是干什么的,Intent和PendingIntent是什么关系,呵呵,往下看:
//其实,PendingIntent就是Intent的描述。可能会问,为什么要对这个Intent进行描述呢?
//因为,我想把我的Intent交给另一个应用程序,让他在稍后的时间去完成我在Intent中安排的任务
//那么直接使用Intent不行吗?是的,不能直接使用Intent,因为Intent没有这个权利。Intent只属于他所在的
//应用程序,不能传递给别的应用程序。
//所以,这里PendingIntent的用处就清晰了。呵呵。而且,PendingIntent的生命周期,由系统管理,创建他的应用
//被Kill了,该PendingIntent可以照样存在,在别的进程中照样可以使用。Intent就没有这样的特性了。
PendingIntent pIntent = PendingIntent.getActivity(MainActivity.this, 0, intent, 0); //获取PendingIntent
//设置事件信息
n.setLatestEventInfo(MainActivity.this, "The title", "The content", pIntent);
//发出通知
nm.notify(NOTIFICATION_ID, n); //这里指定了一个ID,取消的时候,根据这个ID号
}
};
private View.OnClickListener cancelListener = new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// 取消通知
nm.cancel(NOTIFICATION_ID);
}
};
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<Button
android:id="@+id/send"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="发出通知" />
<Button
android:id="@+id/cancel"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="取消通知" />
</LinearLayout>
分享到:
相关推荐
在Android应用开发中,`Toast`和`Notification`是两种重要的用户反馈机制,它们用于向用户展示短暂或持久的信息提示。对于初学者来说,理解并掌握这两种机制是至关重要的。 `Toast`是一种轻量级的提示方式,它会在...
通过运行和分析这个示例代码,开发者可以更好地理解`Notification`的工作原理,学习如何根据应用需求定制通知。 此外,还有一些高级特性和最佳实践需要注意: - 使用`PendingIntent`连接`Notification`到具体的动作...
本资源“Android学习下 toast notification用法.rar”包含了有关如何在Android应用中使用这两种组件的源码实例,适合Android初学者进行学习和参考。 1. **Toast** Toast在Android中用于在界面上显示临时消息,它会...
在Android系统中,通知栏(Notification)是一种至关重要的交互手段,它允许应用在不干扰用户当前操作的情况下,向用户传达信息或提醒。本资源包针对Android通知栏的使用进行了全面整合,涵盖了各种应用场景和实现...
在Android开发中,Notification是应用与用户交互的重要方式,它能够在状态栏中向用户展示信息,即使用户不在应用中也能接收到消息提醒。...通过学习和实践,开发者可以创建出更符合用户需求,且具有吸引力的通知。
通过以上几个小例子的学习,我们可以了解到Notification在Android开发中的强大功能。不仅能够展示简单的文本信息,还可以自定义布局、显示图片甚至处理复杂的逻辑操作。掌握了这些技能后,开发者可以更加灵活地运用...
在Android开发中,`Notification`是系统提供的一种机制,它能够在状态栏或者顶部通知栏显示信息,...通过"Notification顶部通知栏demo"这样的实践项目,开发者可以更好地学习和理解这些概念,并在实际项目中灵活运用。
在Android开发中,...学习并理解这些概念和用法对于开发出用户体验良好的Android应用至关重要。`NotificationDemo`是一个很好的起点,可以帮助开发者快速掌握通知的使用,并为自己的应用创建定制化的通知体验。
在提供的`NotificationTest`文件中,可能包含了示例代码,用于测试和学习以上概念。通常,它会包含一个主活动(MainActivity),在其中创建和发布通知,以及可能的辅助类和方法。 总之,理解并熟练使用Android ...
通过学习和实践这些示例,开发者可以更好地掌握Notification的使用,从而提供更加直观和高效的用户反馈。 总的来说,Notification的实用技巧涉及到通知创建、定制、交互以及优化的方方面面。理解并运用这些技巧,有...
在`TestNotifacation`这个示例中,可能包含了不同配置的Notification实例,包括不同样式、声音、震动等,以便开发者学习和参考。实践中,应根据实际需求选择合适的配置,同时注意保持用户体验的一致性和良好性。
在Android应用开发中,`Notification`是用户界面中不可或缺的一部分,它用于在状态栏中向用户显示...通过研究`TestLocalNotification`中的代码,开发者可以深入学习`Notification`的使用技巧,并将其应用于实际项目中。
5. **带注释的代码**:代码中包含注释对于理解每个步骤的作用至关重要,尤其是对初学者,可以帮助他们更好地学习和理解`Notification`的用法。 在压缩包的文件列表中,我们可以看到项目的一些关键组成部分: - `....
NotificationDemo是一个专门用于演示如何创建和管理通知的示例项目,通过这个项目,我们可以深入学习Android的通知机制。 首先,我们要了解`Notification`的基本结构。一个`Notification`通常包含标题(title)、...
在Android开发中,Notification是应用与用户交互的重要方式,它可以在状态栏中显示消息,即使应用不在前台运行也能提醒用户。本项目“自定义Notification样例工程”专注于讲解如何根据需求定制自己的通知样式,增强...
在Android系统中,Notification是应用与用户...总之,`AndroidNotification`项目提供了一个全面学习和测试Android通知功能的平台,开发者可以通过此项目深入了解Notification的各个方面,提升自己的Android开发技能。
在`NotificationDemo`中,开发者会学习如何创建、配置和显示`Notification`,包括设置通知的图标、标题、内容、优先级等属性。 2. **扩展通知(Big Picture/Big View)**:为了展示更多的信息,`Notification`可以...
在Android开发中,通知(Notification)是用户界面中不可或缺的一部分,它用于在状态栏...通过这个示例,开发者可以学习到如何创建、更新和管理具有进度条的通知,这对于任何涉及后台任务的Android应用都是至关重要的。
通过学习和修改这个示例,你可以更好地理解和掌握Android中的Notification机制。 总之,Notification在Android应用中扮演着至关重要的角色,为用户提供非侵入性的信息提示。理解并熟练使用Notification API,无论是...
通过分析和学习这个项目的源码,你可以更好地理解和实践`Notification`的使用。 总之,`Notification`是Android应用与用户交互的关键工具,`NotificationManager`和`Notification.Builder`简化了创建和管理通知的...