标签:
以前零零散散的学Android,回头一看啥都记不得了,心若在,梦就在,只不过是从头再来~这回好好慢慢的记录吧,学着慢点,忘得也慢啊最好。
Notification,也就是手机上的通知栏,发送通知给手机。
下面介绍
Notification类。android.app.Notification
这个类表述了如何使用NotificationManager类向用户展示一个持久化的通知。该类用于存放标题、内容、图标、以及发送的目标对象。
Notification notif = new Notification();
此类常用的属性有:
icon :通知的图标 notif.icon = R.drawable.android_launcher
tickerText : 通知的标题
flags:设置通知状态的标志值。
defaults:设置通知的默认属性,包括声音,震动,闪光提示。
contentIntent:存放一个PendingIntent类型的对象。点击通知的时候,才启动intent中的目标对象。
PendingIntent用于描述Intent及其最终行为。此对象可以递交给其他应用程序,然后继续处理,这样可稍后处理PendingIntent中描述的Intent及其最终行为。
常用方法:
1、public static PendingIntent getActivity(Context context , int requestCode , Intent intent , int flags);
从系统中取得一个用去启动目标Activity的PendingIntent对象。
flags: FLAG_CANCEL_CURRENT: 关闭当前的PendingIntent,新建一个pendingIntent。
FLAG_UPDATE_CURRENT: 更行当前PendingIntent对象中的数据。
默认为0即可
2、public static PendingIntent getService(Context context , int requestCode , Intent intent , int flags);
3、public static PendingIntent getBroadcast(Context context , int requestCode , Intent intent , int flags);
实例:
设置一个按钮,点击按钮发送一条通知:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<Button
android:id="@+id/btnSendNotification"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="发送通知" />
</RelativeLayout>
package com.example.notificationdemo;
import android.os.Bundle;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setListener();
}
private void setListener() {
findViewById(R.id.btnSendNotification).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//创建启动secondActivity的Intent对象。
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
//创建PendingIntent对象。
PendingIntent pi = PendingIntent.getActivity(MainActivity.this, 0, intent, 0);
//创建Notification对象。
Notification notif = new Notification(R.drawable.ic_launcher, "通知来了",System.currentTimeMillis());
//设置点击通知的监听
notif.setLatestEventInfo(MainActivity.this, "您有软件需要更新", "点击更新", pi);
//创建通知管理器对象。
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
//发送通知。
manager.notify(99, notif);
}
});
}
}
设置了一个secondActivity,只对应一个点击通知内容后要显示的页面,测试PendingIntent。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".SecondActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="您点击了通知!" />
</RelativeLayout>

标签:
原文地址:http://www.cnblogs.com/haojiahong/p/4586533.html