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.os.Bundle;
public class TestNotificationActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/*通知管理器是用来处理通知的系统服务。使用getSystemService方法可以获得对它的引用*/
String svcName = Context.NOTIFICATION_SERVICE;
NotificationManager notificationManager;
notificationManager = (NotificationManager)getSystemService(svcName);
//通过使用通知管理器,可以触发新的通知,修改现有的通知或者删除那些不再需要的通知。
/**Android提供了使用通知向用户传递信息的多种方式。
* 1.状态栏图标
* 2.扩展的通知状态绘制器
* 3.额外的效果,比如声音和振动
*/
//创建一个通知
//选择一个Drawable来作为状态栏图标的显示
int icon = R.drawable.ic_launcher;
//当启动通知时在状态栏显示的文本
String tickerText = "秦哲,你好。";
//扩展的状态栏按时间顺序排序通知
long when = System.currentTimeMillis();
Notification notification = new Notification(icon, tickerText, when);
//notification.number++; //所表示事件数量,如果设定值大于1,状态栏图标就会被一个小数字覆盖
Context context = getApplicationContext();
//展开的状态窗口中显示的文本
String expandedText = "我爱你";
//展开的状态的标题
String expandedTitle = "ez";
//当单击展开的文本时,用于启动一个活动的意图。
Intent intent = new Intent(this, TestNotificationActivity.class);
PendingIntent launchIntent = PendingIntent.getActivity(context, 0, intent, 0);
notification.setLatestEventInfo(context, expandedTitle, expandedText, launchIntent);
//要触发一个通知,需要把它和一个整型的引用ID一起传递给NotificationManager的notify方法
int notificationRef = 1;
notificationManager.notify(notificationRef, notification);
/**要更新一个已经被触发的通知,需要使用通知管理器重新触发它,并传递给notify方法相同的
* 引用ID。既可以传递给它一个相同的Notification对象,也可以传递给它一个全新的Notification对象。
* 只要ID值是相同的,那么新的Notification就会被用来代替状态栏图标以及展开的状态窗口中的内容。
*/
//可以使用引用ID,通过调用通知管理器的cancel方法来取消通知
//notificationManager.cancel(notificationRef);
//取消一个通知的操作会把它从状态栏图标中移除,并且把它从扩展状态窗口中清楚。
}
}
android通知的使用
最新推荐文章于 2022-10-12 00:46:48 发布