Notification是显示在手机状态栏的通知,它代表一种具有全局效果的通知,程序一般通过NotificationManager服务来发送Notification。
在小米手机上,手指在屏幕顶端向下划,可以看到这个通知内容。
package allegro.notificationtest;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends AppCompatActivity {
static final int NOTIFICATION_ID = 0x123;
NotificationManager nm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
nm=(NotificationManager)
getSystemService(NOTIFICATION_SERVICE);
}
public void send(View source)
{
Intent intent=new Intent(MainActivity.this,OtherActivity.class);
PendingIntent pi= PendingIntent.getActivity(MainActivity.this,0,intent,0);
Notification notify = new Notification.Builder(this)
.setAutoCancel(true)
// 设置显示在状态栏的通知提示信息
.setTicker("有新消息")
// 设置通知的图标
.setSmallIcon((R.drawable.java))
// 设置通知内容的标题
.setContentTitle("一条新通知")
// 设置通知内容
.setContentText("恭喜你,你中奖了!")
// 设置使用系统默认的声音、默认LED灯
// .setDefaults(Notification.DEFAULT_SOUND
// |Notification.DEFAULT_LIGHTS)
// 设置通知的自定义声音
// .setSound(Uri.parse("android.resource://org.crazyit.ui/"
// + R.raw.msg))
.setWhen(System.currentTimeMillis())
// 设改通知将要启动程序的Intent
.setContentIntent(pi) //设置事件信息,这里启动intent对应的程序。
.build(); nm.notify(NOTIFICATION_ID,notify); } public void del(View v) { nm.cancel(NOTIFICATION_ID); } }
点击发送按钮后,划开通知栏点击通知,执行启动OtherActivity程序
另外,AndroidManifest.xml文件中声明权限。因为程序要访问闪光灯,振动器。
<!-- 添加操作闪光灯的权限 --> <uses-permission android:name="android.permission.FLASHLIGHT"/> <!-- 添加操作振动器的权限 --> <uses-permission android:name="android.permission.VIBRATE"/>