NotificationCompat.Builder中的setLargeIcon()不起作用

时间:2013-11-25 02:45:37

标签: java android api youtube

在致电时使用YouTube API:

new DownloadImageTask(activity, i, notificationDetails).execute(notificationDetails.get(i).getThumbUri())

这个班级:

public class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {

private int currentIndex;
private LoginActivity activity;
private ArrayList<VideoData> notifyDetails;
private String urlDisplay;

public DownloadImageTask(LoginActivity activity, int notificationDetailsIndex, ArrayList<VideoData> notificationDetails){
    currentIndex = notificationDetailsIndex;
    this.activity = activity;
    this.notifyDetails = notificationDetails;
}

@Override
protected Bitmap doInBackground(String... urls){
        urlDisplay = urls[0];           
        Bitmap image = null;
        InputStream in = null;

        try{
            in = new java.net.URL(urlDisplay).openStream();
            image = BitmapFactory.decodeStream(in);
        } catch(Exception e){
            Log.e("Error decoding bitmap", Log.getStackTraceString(e));
        }finally{
            if (in != null) {
                try {
                    in.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return image;
    }

@Override
protected void onPostExecute(Bitmap image){
    Log.d("bitmap value", String.valueOf(image))     
    VideoData video = notifyDetails.get(currentIndex);           
    activity.notificationBuilder(video.getTitle(), video.getVideoChannelTitle(), image);
        }
    }
}

onPostExecute()中的Log.d()方法返回类似于:

的内容
D/bitmap value﹕ android.graphics.Bitmap@41180d60

我想设置一个带有大图标的通知,但它无效。 以下是Activity类中的通知方法:

public void notificationBuilder(String videoTitle, String channelTitle, Bitmap largeBitmap){
        NotificationCompat.Builder mBuilder;
        Log.d("Bitmapdrawable set", ""+ String.valueOf(largeBitmap));
        mBuilder = new NotificationCompat.Builder(this)
                .setLargeIcon(largeBitmap)
                .setContentTitle(channelTitle + " uploaded a video")
                .setContentText(videoTitle);

        Intent resultIntent = new Intent(this, LoginActivity.class);               
        TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);            
        stackBuilder.addParentStack(LoginActivity.class);            
        stackBuilder.addNextIntent(resultIntent);
        PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(
                0, PendingIntent.FLAG_UPDATE_CURRENT);
        mBuilder.setContentIntent(resultPendingIntent);
        NotificationManager mNotificationManager = (NotificationManager) this.getSystemService(
                Context.NOTIFICATION_SERVICE);

        mNotificationManager.notify(1, mBuilder.build());
    }

我在logcat中出现的错误显示&#34;忽略带有icon == 0&#34;的通知,即使notificationBuilder()方法的第三行:(Log.d("Bitmapdrawable set", ""+ String.valueOf(largeBitmap));返回:{{1在logcat中。

D/Bitmapdrawable set﹕ android.graphics.Bitmap@41433b80

1 个答案:

答案 0 :(得分:5)

您也需要致电setSmallIcon()