Android判断app是否后台运行中,后台运行通知栏提示

25 篇文章 0 订阅
13 篇文章 0 订阅

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


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

public static boolean isBackground(Context context) {

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

        List<RunningAppProcessInfo> 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());

    }



  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值