手机
当前位置:查字典教程网 >编程开发 >安卓软件开发 >Android中关于Notification及NotificationManger的详解
Android中关于Notification及NotificationManger的详解
摘要:Android状态栏提醒在Android中提醒功能也可以用AlertDialog,但是我们要慎重的使用,因为当使用AlertDialog的时...

Android状态栏提醒

在Android中提醒功能也可以用AlertDialog,但是我们要慎重的使用,因为当使用AlertDialog的时候,用户正在进行的操作将会被打断,因为当前焦点被AlertDialog得到。我们可以想像一下,当用户打游戏正爽的时候,这时候来了一条短信。如果这时候短信用AlertDialog提醒,用户必须先去处理这条提醒,从而才能继续游戏。用户可能会活活被气死。而使用Notification就不会带来这些麻烦事,用户完全可以打完游戏再去看这条短信。所以在开发中应根据实际需求,选择合适的控件。

步骤:

一、添加布局对象

复制代码 代码如下:

<Button

android:id="@+id/showButton"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="showNotification" />

<Button

android:id="@+id/cancelButton"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="cancelNotification" />

二、修改MianActivity继承处Activity并实现接口OnClickListener

复制代码 代码如下:

public class MainActivity extends Activity implements OnClickListener {

private Context mContext = this;

private Button showbtn, calclebtn;

private Notification noti;

private NotificationManager notiManger;

private static int NOTIFICATION_ID = 0x0001;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

setUpViews();

}

private void setUpViews() {

showbtn = (Button) findViewById(R.id.showButton);

calclebtn = (Button) findViewById(R.id.cancelButton);

noti = new Notification(R.drawable.ic_launcher, "this is a notification", System.currentTimeMillis());

noti.defaults = Notification.DEFAULT_SOUND;// 使用默认的提示声音

noti.defaults |= Notification.DEFAULT_VIBRATE;// 添加震动

notiManger = (NotificationManager) this.getSystemService(mContext.NOTIFICATION_SERVICE);//获取NofificationManger对象

showbtn.setOnClickListener(this);//让Activity实现接口OnClickListener可以简单的通过此两行代码添加按钮点击响应事件

calclebtn.setOnClickListener(this);

}

// 按钮点击事件响应

@Override

public void onClick(View v) {

if (v == showbtn) {

Intent intent = new Intent(this.getApplicationContext(),this.getClass());

// 设置Intent.FLAG_ACTIVITY_NEW_TASK

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, 0);

// noti.setLatestEventInfo(context, contentTitle, contentText, contentIntent)设置(上下文,标题,内容,PendingInteng)

noti.setLatestEventInfo(this, "10086", "你从此以后免除所有话费", contentIntent);

// 发送通知(消息ID,通知对象)

notiManger.notify(NOTIFICATION_ID, noti);

} else if (v == calclebtn) {

// 取消通知(id)

notiManger.cancel(NOTIFICATION_ID);

}

}

}

【Android中关于Notification及NotificationManger的详解】相关文章:

android中Invalidate和postInvalidate的更新view区别

Android之PreferenceActivity应用详解

Android 动画之AlphaAnimation应用详解

Android开发:优化ListView实践解析

android中path的arcTo方法

Android Studio使用教程图文详解

Android中Service(后台服务)详解

Android开发笔记 Handler使用总结

Android 动画之RotateAnimation应用详解

Android界面 NotificationManager使用Bitmap做图标

精品推荐
分类导航