1. 程式人生 > >Android判斷app是否後臺執行中,後臺執行通知欄提示

Android判斷app是否後臺執行中,後臺執行通知欄提示

在做隨緣吧的過程中,當用戶收到有緣人發過來的訊息時,如果隨緣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;

            }

        }

returnfalse;

    }

然後,在通知欄顯示提示內容:

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

    }