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

在做随缘吧的过程中,当用户收到有缘人发过来的消息时,如果随缘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());

    }



你可能感兴趣的:(技术总结,Android,Java学习)