package com.itheima40.notificationdemo;
import android.os.Bundle;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
public class MainActivity extends Activity {
private NotificationManager nm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取通知管理器对象, 用于显示和关闭通知
nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
}
@SuppressWarnings("deprecation")
public void show(View v) {
Notification notification = new Notification(
R.drawable.about_brand,
"您有一条新的消息过来了...",
System.currentTimeMillis());
// 使用隐式方式指向小芳的聊天页面
Intent intent = new Intent("com.itheima40.xiaofang");
/**
* PendingIntent是一个延期意图(在未来的某个时间段, 开启一个页面, 并且可以指定使用的次数)
* 其实就是对Intent类的一个包装, 增加了一个使用次数的功能
*
* intent 是指向某个页面的意图. 注意: 此意图必须使用隐式的方式.
*/
PendingIntent contentIntent = PendingIntent.getActivity(this, 10, intent, PendingIntent.FLAG_ONE_SHOT);
notification.setLatestEventInfo(this,
"小芳", // 通知详细内容的标题
"今晚汉庭168旁边的肯德基旁边的...不见不散.", // 通知详细内容的详情信息
contentIntent); // 当点击通知时, 跳转到哪一个页面的PendingIntent
// 设置通知的标识
// notification.flags = Notification.FLAG_AUTO_CANCEL; // 点击后自动关闭
notification.flags = Notification.FLAG_FOREGROUND_SERVICE; // 运行在前台的服务, 类似于手机卫士的通知
// 设置弹出通知时需要的场景: 声音, 亮灯, 震动
notification.defaults = Notification.DEFAULT_ALL; // 弹出通知时, 播放声音, 亮灯和震动.
nm.notify(123, notification);
}
public void close(View v) {
nm.cancel(123);
}
}
package com.itheima40.notificationdemo;
import android.app.Activity;
import android.os.Bundle;
public class XiaoFangActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle("我是小芳的聊天页面...");
}
}
<activity android:name=".XiaoFangActivity">
<intent-filter>
//这个必须写<action android:name="com.itheima40.xiaofang" />
//这个可以不写的
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
// 使用隐式方式指向小芳的聊天页面
Intent intent = new Intent("com.itheima40.xiaofang");
/**
* PendingIntent是一个延期意图(在未来的某个时间段, 开启一个页面, 并且可以指定使用的次数)
* 其实就是对Intent类的一个包装, 增加了一个使用次数的功能
*
* intent 是指向某个页面的意图. 注意: 此意图必须使用隐式的方式.
*/
PendingIntent contentIntent = PendingIntent.getActivity(this, 10, intent, PendingIntent.FLAG_ONE_SHOT);
//notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
notification.setLatestEventInfo(this,
"小芳", // 通知详细内容的标题
"今晚汉庭168旁边的肯德基旁边的...不见不散.", // 通知详细内容的详情信息
contentIntent); // 当点击通知时, 跳转到哪一个页面的PendingIntent
// 设置通知的标识
// notification.flags = Notification.FLAG_AUTO_CANCEL; // 点击后自动关闭
notification.flags = Notification.FLAG_FOREGROUND_SERVICE; // 运行在前台的服务, 类似于手机卫士的通知
// 设置弹出通知时需要的场景: 声音, 亮灯, 震动
notification.defaults = Notification.DEFAULT_ALL; // 弹出通知时, 播放声音, 亮灯和震动.
<uses-permission android:name="android.permission.VIBRATE"/>