《第一行代码》第八章 通知的使用(NotificationTest)

参考:第一行代码
第八章讲的是手机多媒体的应用。虽然很多人使用手机,但是大家并不知道为什么自带有很多程序。比如自带的多媒体应用。然后我们就可以使用这些多媒体编写更多,更高质量的应用!
先上一个notification.
无论是在哪里创建通知,整体的步骤大致是相同的!
第一步先要拿到一个NotificationManager对通知进行管理,它可以通过Context的getSystemService(a)方法拿到,a为系统的服务参数。
第二步创建一个Notification对象,这个对象可以通过有参构造方法进行创建,使用有三个参数的构造方法(a,b,c)
a为通知的图标,
b为通知的ticker内容,会一闪而过,属于瞬时的提示信息。
c为通知被创建的时间。
第三步对通知的布局进行设定。使用Notification的setLatesEventInfo(a,b,c,d)就可以给通知设定一个标准的布局。
a,是Context
b,是通知标题
c为通知内容
d为pendingIntent.(要是只是通知一下,不给通知活动的话基本没有用,就传入null就可以了)
第四步,用NotificationManager对象的notify(a,b)方法让通知显示出来!
a为通知的id
b为Notification对象。
初步打完收工。

当然在里面加入了一个通知的响应活动,
PendingIntent相当于延迟的Intent,是一个类。主要提供几个静态方法用于获取实例,getActivity(),getBroadcast(),getService().
接收参数都是相同的;
a为Context;
b一般用不到,传入0;
c为Intent对象
d用于确定PendingIntent的行为
(注意通知相应活动的注册)
java:

package com.example.notifitiontest;

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.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity implements OnClickListener {
    private Button sendNotice;
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        sendNotice=(Button)findViewById(R.id.send_notice);
        sendNotice.setOnClickListener(this);
    }
    @Override
    public void onClick(View v){
        switch(v.getId()){
        case R.id.send_notice:
            NotificationManager manager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);//第一步
            Notification notification=new Notification(R.drawable.ic_launcher,"This is ticker text",System.currentTimeMillis());//第二步
            notification.defaults=Notification.DEFAULT_ALL;
            Intent intent=new Intent(this,NotificationActivity.class);
            PendingIntent pi=PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_CANCEL_CURRENT);
            notification.setLatestEventInfo(this, "我是你爸", "This is content text", pi);//第三步
            manager.notify(2,notification);//第四步

            break;
        default:
            break;
        }
    }

}

主活动布局:

<LinearLayout 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:orientation="vertical">  

    <Button 
        android:id="@+id/send_notice"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Send notice"
        />

LinearLayout>

通知活动布局


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:textSize="24sp"
        android:text="This is notification layout"
        />

LinearLayout>

你可能感兴趣的:(安卓)