在做随缘吧的过程中,当用户收到有缘人发过来的消息时,如果随缘app没有在前台打开,需要提醒用户有新的消息。这个如何实现呢?


首先,需要判断当前app是否在后台运行,代码如下:

public static boolean isBackground(Context context) {

        ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);

        List appProcesses = activityManager.getRunningAppProcesses();

        if (appProcesses.size() > 0) {

            RunningAppProcessInfo appProcess = appProcesses.get(0); // 判断第一个是不是自己的应用就可以了

            if (appProcess.processName.equals(context.getPackageName())) {

                Log.i("前台", appProcess.processName);

                return false;

            } else {

                Log.i("后台", appProcess.processName);

                return true;

            }


        }

        return false;

    }


然后,在通知栏显示提示内容:

private void addNotificaction(Context context, String title, String message) {

        String ns = Context.NOTIFICATION_SERVICE;

        NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(ns);

        NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context);

        mBuilder.setContentTitle(title).setContentText(message)

                .setContentIntent(getDefalutIntent(Notification.FLAG_AUTO_CANCEL, context)) // 设置通知栏点击意图

                .setTicker("来自随缘吧www.suiyuan521.com的缘分") // 通知首次出现在通知栏,带上升动画效果的

                .setWhen(System.currentTimeMillis())// 通知产生的时间,会在通知信息里显示,一般是系统获取到的时间

                .setPriority(Notification.PRIORITY_DEFAULT) // 设置该通知优先级

                .setAutoCancel(true)// 设置这个标志当用户单击面板就可以让通知将自动取消

                .setOngoing(false)// ture,设置他为一个正在进行的通知。他们通常是用来表示一个后台任务,用户积极参与(如播放音乐)或以某种方式正在等待,因此占用设备(如一个文件下载,同步操作,主动网络连接)

                .setDefaults(Notification.DEFAULT_VIBRATE)// 向通知添加声音、闪灯和振动效果的最简单、最一致的方式是使用当前的用户默认设置,使用defaults属性,可以组合

                // Notification.DEFAULT_ALL Notification.DEFAULT_SOUND 添加声音 // requires VIBRATE permission

                .setSmallIcon(R.drawable.ic_launcher);// 设置通知小ICON


        mBuilder.setAutoCancel(true).setContentTitle(title).setContentText(message).setTicker("来自随缘吧www.suiyuan521.com的缘分");

        Intent resultIntent = new Intent(context, MainActivity.class);

        resultIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

        PendingIntent pendingIntent =

                PendingIntent.getActivity(context, 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT);

        mBuilder.setContentIntent(pendingIntent);

        mNotificationManager.notify(100, mBuilder.build());

    }



更多相关文章

  1. android中画廊视图Gallery和ImageSwitcher组件的使用
  2. Android(安卓)Universal-Iamge-Loader的DisplayImageOptions
  3. 【Android】 设置App字体不跟随系统字体改变
  4. android 系统 makefile文件(Android.mk)组织结构
  5. Android之使用PopupWindow使用和总结
  6. android之绘图工具类详解
  7. Android布局之线性布局——LinearLayout
  8. Android(安卓)当子控件设置 focusable=true 的事件不能点击的问
  9. Android(安卓)Intent设置类型setType();

随机推荐

  1. 外形设计有亮点,日本电讯商 KDDI 发布多款
  2. Android vs iPhone icon设计指南
  3. Android Studio无法启动的解决方案 canno
  4. Android基础之内存溢出
  5. Android Studio assets目录、raw目录
  6. android中Calendar与Date的区别 转自网络
  7. Android中ROM的制作
  8. Android开发人员看过来:这些Kotlin化方法
  9. Android中ImageView的scaleType 属性说明
  10. 关于蓝牙设备之间共享网络的问题(android4