移动开发 \ Android \ Notification点击事件和点击消失

Notification点击事件和点击消失

总点击99
简介:版权声明:本文为博主原创文章,未经博主允许不得转载。https://blog.csdn.net/u012691505/article/details/53004930

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012691505/article/details/53004930

用到Notification遇到一些问题记录一下

1.Notification的点击事件(点击弹出对话框)

      网上有很多做法,我的做法是:

     (1)点击Notification跳转到一个Activity

     (2)将Activity的主题设置为:类似android:theme="@style/Theme.AppCompat.Dialog"这样的Dialog样式,这样Activity就会以对话框的形式悬浮在另一个Activity之上。

     (3)将Activity的背景设置为#80000000,使Activity背景类似透明

     (4)在Activity里面设置Dialog弹出

     (5)如果是自定义的对话框,设置代码可以参考下面的

                final AlertDialog dialog = new AlertDialog.Builder(this).create();


               dialog.show();


              dialog.getWindow().setContentView(R.layout.notification_view);


              TextView content= (TextView) dialog.findViewById(R.id.no_content);


              content.setText(R.string.data_update);


             dialog.getWindow().findViewById(R.id.no_download).setOnClickListener(new View.OnClickListener() {


                 @Override


                   public void onClick(View v) {


                      Toast.makeText(UpdateTestActivity.this,"正在开始新数据下载",Toast.LENGTH_LONG).show();


                      dialog.dismiss();


                       finish();


                 }


               });


           dialog.getWindow().findViewById(R.id.no_cancel).setOnClickListener(new View.OnClickListener() {


                   @Override


                  public void onClick(View v) {


                         dialog.dismiss();


                        finish();


                }


            });

       

2.点击一次消失

在网上看到一种方法:manager.cancel();我的结果是这个方法直接把notification干掉了,根本不显示。

推荐下面两种:

 (1)设置一个flags就好notification.flags |= Notification.FLAG_AUTO_CANCEL;(一定要加这个"|",不然没效果)

 (2)builder.setAutoCancel(true);

3.显示多个Notification时,点击任何一个跳转的都是同一个界面

    这和PendingIntent.getActivity(context,intent,0);这个方法的第二个参数有关。Notification用在不同场景默认0是正确的,如果是同一场景下有多个,那就需要修改它的值。

4.android.view.WindowLeaked:异常

 在执行AlterDialog的点击事件时,直接关掉Activity,没有先关闭dialog导致的窗体溢出异常


意见反馈 常见问题 官方微信 返回顶部