广

android开发

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    Android中关于Notification及NotificationManger的详解

    2018-04-06 10:40:13 次阅读 稿源:互联网
    广告

    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);
      }
     }
    }

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告