且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

自定义Notification

更新时间:2022-09-14 17:09:09

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
private static void updateProgressNotification(Context cxt, int appsCount,
            int percent, String appName, boolean showTicker) {
        NotificationManager nm = (NotificationManager) cxt.getSystemService(
                Context.NOTIFICATION_SERVICE);
        if (DEBUG) LogHelper.d(TAG, "update notification: " + appsCount + ", appName: " + appName);
        if (appsCount == 0) {
            nm.cancel(Constants.STATUSBAR_APK_DOWNLOADER_PROGRESS_ID);
            return;
        }
 
        String status = null;
        if (appsCount == 1) {
            status = cxt.getString(Res.string.download_notification_downloading_one, appName);
        else {
            status = cxt.getString(Res.string.download_notification_downloading_more, appsCount);
        }
 
        RemoteViews downloadView = new RemoteViews(Constants.REAL_PACKAGE_NAME,
                Res.layout.notification_apkdownloader_downloading);
        downloadView.setTextViewText(Res.id.title, status);
        downloadView.setProgressBar(Res.id.progress_bar, 100, percent, false);
 
        Intent intent = new Intent(cxt, DownloadMgrActivity.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
        PendingIntent pi = PendingIntent.getActivity(cxt, 0, intent,
                PendingIntent.FLAG_UPDATE_CURRENT);
 
        Notification notification = new Notification();
        notification.icon = NotificationUtils.getGroupIconIdByGroupId(Constants.NOTIFICATION_APPGROUP, Constants.STATE_GREEN);
        notification.when = 0;
        notification.flags = Notification.FLAG_ONGOING_EVENT;
        notification.defaults = 0;
        notification.sound = null;
        notification.vibrate = null;
        notification.contentView = downloadView;
        notification.contentIntent = pi;
        if (showTicker) {
            String ticker = cxt.getString(Res.string.download_notification_downloading_one, appName);
            notification.tickerText = ticker;
        }
 
        nm.notify(Constants.STATUSBAR_APK_DOWNLOADER_PROGRESS_ID, notification);
    }

 本文转自demoblog博客园博客,原文链接http://www.cnblogs.com/0616--ataozhijia/p/3680957.html如需转载请自行联系原作者


demoblog