notification.flags = Notification.FLAG_AUTO_CANCEL;
加上这个flag 

解决方案 »

  1.   

    我没有notification这个对象啊。。针对我贴出来的代码没有什么办法么?
      

  2.   

    Notification notifation = builder.build();
     notification.flags = Notification.FLAG_AUTO_CANCEL;
    nm.notify(1, notification);
      

  3.   

    没懂。。这个builder是什么。。
      

  4.   

    没懂。。这个builder是什么。。
    Notification notifation =  mBuilder.build();
     notification.flags = Notification.FLAG_AUTO_CANCEL;
     nm.notify(1,notifation );
      

  5.   

    没懂。。这个builder是什么。。
    Notification notifation =  mBuilder.build();
     notification.flags = Notification.FLAG_AUTO_CANCEL;
     nm.notify(1,notifation );十分感谢,那我第一个问题您有什么办法么?
      

  6.   

    这个使用延迟意图不就行了么 
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
    notification.contentIntent = pendingIntent;
      

  7.   


    这个不是点击了通知栏的消息之后跳转到某一个Activity么。。我想直接打开文件。
      

  8.   


    这个不是点击了通知栏的消息之后跳转到某一个Activity么。。我想直接打开文件。
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setType("*/*");
    startActivity(intent);
    配置下intent就行了
      

  9.   


    这个不是点击了通知栏的消息之后跳转到某一个Activity么。。我想直接打开文件。
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setType("*/*");
    startActivity(intent);
    配置下intent就行了求教。。
      

  10.   


    这个不是点击了通知栏的消息之后跳转到某一个Activity么。。我想直接打开文件。
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setType("*/*");
    startActivity(intent);
    配置下intent就行了求教。。
    http://www.2cto.com/kf/201204/127834.html  可以去参考下这个
      

  11.   


    这个不是点击了通知栏的消息之后跳转到某一个Activity么。。我想直接打开文件。
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setType("*/*");
    startActivity(intent);
    配置下intent就行了求教。。
    http://www.2cto.com/kf/201204/127834.html  可以去参考下这个还是不太懂。。
      

  12.   

    http://blog.csdn.net/jj120522/article/details/7948554 这个讲的就是通知栏更新 下载完成之后点击安装
      

  13.   

    public class OpenFiles {
         //android获取一个用于打开HTML文件的intent
           public static Intent getHtmlFileIntent(File file)
           {
               Uri uri = Uri.parse(file.toString()).buildUpon().encodedAuthority("com.android.htmlfileprovider").scheme("content").encodedPath(file.toString()).build();
               Intent intent = new Intent("android.intent.action.VIEW");
               intent.setDataAndType(uri, "text/html");
               return intent;
           }
         //android获取一个用于打开图片文件的intent
           public static Intent getImageFileIntent(File file)
           {
               Intent intent = new Intent("android.intent.action.VIEW");
               intent.addCategory("android.intent.category.DEFAULT");
               intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
               Uri uri = Uri.fromFile(file);
               intent.setDataAndType(uri, "image/*");
               return intent;
           }
           //android获取一个用于打开PDF文件的intent
           public static Intent getPdfFileIntent(File file)
           {
             Intent intent = new Intent("android.intent.action.VIEW");
             intent.addCategory("android.intent.category.DEFAULT");
             intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
             Uri uri = Uri.fromFile(file);
             intent.setDataAndType(uri, "application/pdf");
             return intent;
           }
         //android获取一个用于打开文本文件的intent
         public static Intent getTextFileIntent(File file)
         {   
           Intent intent = new Intent("android.intent.action.VIEW");
           intent.addCategory("android.intent.category.DEFAULT");
           intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
           Uri uri = Uri.fromFile(file);
           intent.setDataAndType(uri, "text/plain");
           return intent;
         }
       
         //android获取一个用于打开音频文件的intent
           public static Intent getAudioFileIntent(File file)
           {
             Intent intent = new Intent("android.intent.action.VIEW");
             intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
             intent.putExtra("oneshot", 0);
             intent.putExtra("configchange", 0);
             Uri uri = Uri.fromFile(file);
             intent.setDataAndType(uri, "audio/*");
             return intent;
           }
           //android获取一个用于打开视频文件的intent
           public static Intent getVideoFileIntent(File file)
           {
             Intent intent = new Intent("android.intent.action.VIEW");
             intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
             intent.putExtra("oneshot", 0);
             intent.putExtra("configchange", 0);
             Uri uri = Uri.fromFile(file);
             intent.setDataAndType(uri, "video/*");
             return intent;
           }
       
       
           //android获取一个用于打开CHM文件的intent
           public static Intent getChmFileIntent(File file)
           {
             Intent intent = new Intent("android.intent.action.VIEW");
             intent.addCategory("android.intent.category.DEFAULT");
             intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
             Uri uri = Uri.fromFile(file);
             intent.setDataAndType(uri, "application/x-chm");
             return intent;
           }
       
       
         //android获取一个用于打开Word文件的intent
           public static Intent getWordFileIntent(File file)
           {
             Intent intent = new Intent("android.intent.action.VIEW");
             intent.addCategory("android.intent.category.DEFAULT");
             intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
             Uri uri = Uri.fromFile(file);
             intent.setDataAndType(uri, "application/msword");
             return intent;
           }
         //android获取一个用于打开Excel文件的intent
           public static Intent getExcelFileIntent(File file)
           {
             Intent intent = new Intent("android.intent.action.VIEW");
             intent.addCategory("android.intent.category.DEFAULT");
             intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
             Uri uri = Uri.fromFile(file);
             intent.setDataAndType(uri, "application/vnd.ms-excel");
             return intent;
           }
         //android获取一个用于打开PPT文件的intent
           public static Intent getPPTFileIntent(File file)
           {
             Intent intent = new Intent("android.intent.action.VIEW");
             intent.addCategory("android.intent.category.DEFAULT");
             intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
             Uri uri = Uri.fromFile(file);
             intent.setDataAndType(uri, "application/vnd.ms-powerpoint");
             return intent;
           }
           //android获取一个用于打开apk文件的intent
           public static Intent getApkFileIntent(File file)
           {
               Intent intent = new Intent(); 
               intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
               intent.setAction(android.content.Intent.ACTION_VIEW); 
               intent.setDataAndType(Uri.fromFile(file),  "application/vnd.android.package-archive"); 
               return intent;
           }
          
          
    }下载完成之后  先从里面获取你需要的打开的文件类型的intent  更新一下 通知栏就ok了 就可以点击打开那个文件了
    pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);

    notification.setLatestEventInfo(this,appName, "下载成功,点击安装", pendingIntent);
    notificationManager.notify(notification_id, notification);
      

  14.   

    你可以在创建notification的时候补给他延迟意图 在下载完成之后再更新notification给他设置
    /***
     * 开线程下载
     */
    public void createThread() {
    /***
     * 更新UI
     */
    final Handler handler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
    switch (msg.what) {
    case DOWN_OK:
    // 下载完成,点击安装
    Uri uri = Uri.fromFile(newVersion);
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setDataAndType(uri,"application/vnd.android.package-archive");
    pendingIntent = PendingIntent.getActivity(UpdateService.this, 0, intent, 0);
    notification.icon = R.drawable.ic_launcher;
    contentView.setImageViewResource(R.id.notificationImage, R.drawable.beicai_nopreesed);
    notification.setLatestEventInfo(UpdateService.this,appName, "下载成功,点击安装", pendingIntent);
    notificationManager.notify(notification_id, notification);

    stopSelf();
    break;
    case DOWN_ERROR:
    notification.setLatestEventInfo(UpdateService.this,appName, "下载失败", pendingIntent);
    break; default:
    stopSelf();
    break;
    } } }; final Message message = new Message(); new Thread(new Runnable() {
    @Override
    public void run() { try {
    long downloadSize = downloadUpdateFile(down_url,
    newVersion.toString());
    if (downloadSize > 0) {
    // 下载成功
    message.what = DOWN_OK;
    handler.sendMessage(message);
    } } catch (Exception e) {
    e.printStackTrace();
    message.what = DOWN_ERROR;
    handler.sendMessage(message);
    } }
    }).start();
    } /***
     * 创建通知栏
     */
    RemoteViews contentView; public void createNotification() {
    notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    notification = new Notification();
         notification.flags = Notification.FLAG_AUTO_CANCEL;
    notification.icon = android.R.drawable.stat_sys_download;
    // // 这个参数是通知提示闪出来的值.
    // notification.tickerText = "开始下载";
    //
    //  updateIntent = new Intent(this, MainActivity.class);
    // pendingIntent = PendingIntent.getActivity(this, 0, updateIntent, 0);
    //
    // // 这里面的参数是通知栏view显示的内容
    // notification.setLatestEventInfo(this, app_name, "下载:0%",
    // pendingIntent);
    //
    // notificationManager.notify(notification_id, notification); /***
     * 在这里我们用自定的view来显示Notification
     */
    contentView = new RemoteViews(getPackageName(),R.layout.notification_item);
    contentView.setTextViewText(R.id.notificationTitle, "正在下载");
    contentView.setTextViewText(R.id.notificationPercent, "0%");
    contentView.setProgressBar(R.id.notificationProgress, 100, 0, false);
    notification.contentView = contentView;
    /*updateIntent = new Intent(this, MainActivity.class);
    updateIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
    pendingIntent = PendingIntent.getActivity(this, 0, updateIntent, 0);
    notification.contentIntent = pendingIntent;*/
    notificationManager.notify(notification_id, notification); } /***
     * 下载文件
     * 
     * @return
     * @throws MalformedURLException
     */
    public long downloadUpdateFile(String down_url, String file)
    throws Exception {
    int down_step = 5;// 提示step
    int totalSize;// 文件总大小
    int downloadCount = 0;// 已经下载好的大小
    int updateCount = 0;// 已经上传的文件大小
    InputStream inputStream;
    OutputStream outputStream; URL url = new URL(down_url);
    HttpURLConnection httpURLConnection = (HttpURLConnection) url
    .openConnection();
    httpURLConnection.setConnectTimeout(TIMEOUT);
    httpURLConnection.setReadTimeout(TIMEOUT);
    // 获取下载文件的size
    totalSize = httpURLConnection.getContentLength();
    if (httpURLConnection.getResponseCode() == 404) {
    throw new Exception("fail!");
    }
    inputStream = httpURLConnection.getInputStream();
    outputStream = new FileOutputStream(file, false);// 文件存在则覆盖掉
    byte buffer[] = new byte[1024];
    int readsize = 0;
    while ((readsize = inputStream.read(buffer)) != -1) {
    outputStream.write(buffer, 0, readsize);
    downloadCount += readsize;// 时时获取下载到的大小
    /**
     * 每次增张5%
     */
    if (updateCount == 0
    || (downloadCount * 100 / totalSize - down_step) >= updateCount) {
    updateCount += down_step;
    // 改变通知栏
    // notification.setLatestEventInfo(this, "正在下载...", updateCount
    // + "%" + "", pendingIntent);
    contentView.setTextViewText(R.id.notificationPercent,
    updateCount + "%");
    contentView.setProgressBar(R.id.notificationProgress, 100,
    updateCount, false);
    // show_view
    notificationManager.notify(notification_id, notification); } }
    if (httpURLConnection != null) {
    httpURLConnection.disconnect();
    }
    inputStream.close();
    outputStream.close(); return downloadCount; }
      

  15.   

    你在handlermessage方法里面把更新应用的intent改成你需要打开文件的intent就行了
      

  16.   

    会执行那个意图啊 就是你的intent  
      

  17.   

    你的intent是打开一个文件的话他就会大卡一个文件 是跳到一个界面 就会跳到一个界面
      

  18.   


    我的那部分代码里面就是执行PendingIntent?
      

  19.   

    你把你的pendingintent下载完成再设置上去........
      

  20.   

    你去把这个demo下下来跑一遍 然后再看看代码 差不多就能懂了...