您的位置:首页 > 移动开发 > Android开发

Android-Notification (通知实现)

2015-08-26 10:41 525 查看

1.回顾

  上篇学习了 Dialog实现的 6中方式 :普通对话框,列表对话框,单选对话框,多选对话框,自定义对话框和 activity 实现 对话框;

2.重点

   (1)Notification 实现 通知

   (2)Notification 的权限

   (3)NotificationManager 实现操作通知

3.基本实现

   3.1效果图

      手机 小米4 ,是有声音和震动的,这里没办法展示;
                                                               


   3.2 布局实现

       两个按钮:

<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"
tools:context="${relativePackage}.${activityClass}" >

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/textView1"
android:layout_marginTop="16dp"
android:text="发送通知" />

<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/button1"
android:text="取消通知" />

</RelativeLayout>

     3.3 代码实现

package com.example.studydemo7;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Notification;
import android.app.Notification.Builder;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

private Button button1,button2;

//通知 是通过 NotificationManager 来管理的
private NotificationManager manager;

private final int NOTIFICATION_ID=1;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//初始化 得到 通知 系统服务
manager=(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

button1=(Button) findViewById(R.id.button1);
button2=(Button) findViewById(R.id.button2);
button1.setOnClickListener(new button1ClickListener());
button2.setOnClickListener(new button2ClickListener());

}

class button1ClickListener implements OnClickListener{

@Override
public void onClick(View v) {
//发送通知
sendNotification();
}

}
class button2ClickListener implements OnClickListener{

@Override
public void onClick(View v) {
//取消通知
manager.cancel(NOTIFICATION_ID);
}

}

@SuppressLint("NewApi")
private void sendNotification(){

//通过 Builder 来创建 Notification 的
Builder builder=new Notification.Builder(this);
//设置 通知 图标
builder.setSmallIcon(R.drawable.ic_launcher);
//设置 通知 显示标题
builder.setTicker("Hi");
//设置 通知栏 标题
builder.setContentTitle("StudyDemo");
//设置 通知内容
builder.setContentText("StudyDemo 需要更新了!");
//设置 提醒 声音/震动/指示灯
builder.setDefaults(Notification.DEFAULT_ALL);

//设置 点击后的跳转 通过 pendingIntent 实现
Intent intent=new Intent(this,MainActivity.class);
PendingIntent pendingIntent=PendingIntent.getActivity(this,0, intent,0);
builder.setContentIntent(pendingIntent);

//创建 通知
//安卓4.1 及其 以上使用 build()方法 ,以下的使用 builder.getNotification();
Notification notification=builder.build();
manager.notify(NOTIFICATION_ID, notification);
}

}


4.demo 免积分下载

http://download.csdn.net/detail/lablenet/9048745
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息