使用builder 进行设置,我用Notification设置无效:
mBuilder.setDefaults(NotificationCompat.FLAG_ONLY_ALERT_ONCE);
我单独设置下面两句话,没有效果,我就去掉了,只用上面那句话就解决了;
builder.setVibrate(new long[]{0});
builder.setSound(null);
下面是我的鞋的
import java.lang.reflect.Method;import android.app.Notification;import android.app.NotificationManager;import android.app.PendingIntent;import android.content.Context;import android.content.Intent;import android.graphics.Color;import android.media.AudioManager;import android.os.Build;import android.support.v4.app.NotificationCompat;import android.support.v4.app.NotificationCompat.Builder;import android.widget.RemoteViews;import com.lidroid.xutils.http.HttpHandler;import com.redoor.rcs.R;import com.redoor.rcs.async.xhttp.info.ReqVersionInfo;import com.redoor.rcs.common.AppContext;import com.redoor.rcs.utils.MyLog;import com.redoor.rcs.utils.Utils;public class NotificationDownUtils { private static NotificationManager manager; private Builder mBuilder; private RemoteViews mRemoteview; private static NotificationDownUtils instance; private static Context context; public static NotificationDownUtils get(){ if (manager==null) { synchronized (NotificationManager.class) { if (manager==null) { context= AppContext.getContext(); manager=(NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE); instance=new NotificationDownUtils(); } } } return instance; } private PendingIntent getPendingIntent(ReqVersionInfo gInfo) { Intent i=new Intent(); if (!Utils.isNullOrEmpty(gInfo.getIntentWhichClassName())) { i.setClassName(context, gInfo.getIntentWhichClassName()); } return PendingIntent.getActivity(context, gInfo.getId(), i, PendingIntent.FLAG_UPDATE_CURRENT);//requestcode 相同则被覆盖掉,应该是不行同的 } private NotificationCompat.Builder createInviteNBuilder(ReqVersionInfo gInfo){ Builder builder =new Builder(context); builder.setWhen(System.currentTimeMillis()) .setContentIntent(getPendingIntent(gInfo))//此处是用广播处理了,这里就不用了 .setSmallIcon(R.drawable.ic_launcher) .setTicker("检测有新版本") .setDefaults(Notification.FLAG_SHOW_LIGHTS) .setPriority(Notification.PRIORITY_DEFAULT) .setOngoing(true)//true:必须手动清除代码 .setDefaults(Notification.DEFAULT_ALL); return builder; } public void showDownloadNotification(ReqVersionInfo gInfo){ if (mBuilder==null) { mBuilder=createInviteNBuilder(gInfo); } if (mRemoteview==null) { mRemoteview=new RemoteViews(context.getPackageName(), R.layout.notification_download); } mRemoteview.setImageViewResource(R.id.iv_image, R.drawable.ic_launcher); mRemoteview.setTextViewText(R.id.title, gInfo.getName()); mRemoteview.setTextViewText(R.id.progress_str,gInfo.getProgressStr()); mRemoteview.setProgressBar(R.id.roundProgressBar, 100, gInfo.getProgress(), false); MyLog.e("NotificationDownUtils.java", "NotificationDownUtils gInfo = "+gInfo); String stateRes="开始"; String intentfilter=null; if (gInfo.getLoading_state()==HttpHandler.State.CANCELLED.value()) { stateRes="取消";//已取消 intentfilter=NotificationBroadcast.NOTIFICATION_VERSION_CANCLE; }else if (gInfo.getLoading_state()==HttpHandler.State.FAILURE.value()){ stateRes="失败"; intentfilter=NotificationBroadcast.NOTIFICATION_VERSION_DOWNLOAD; }else if (gInfo.getLoading_state()==HttpHandler.State.LOADING.value()){ stateRes="下载中"; intentfilter=NotificationBroadcast.NOTIFICATION_VERSION_CANCLE; }else