完成通知后打开下载文件

时间:2013-10-24 13:46:38

标签: android fileoutputstream

我已经使用通知来显示下载文件的状态。我只是使用FileOutputStream来下载文件,这样它也可以在不到9的API上工作。但是现在我的问题是在完成下载后,我试图在相应的阅读器中打开该文件。但它会抛出窗口泄漏异常如果我关闭应用程序,在下载文件之间。

我的进度更新方法代码如下,请帮我从中脱颖而出。

@Override
protected void onProgressUpdate(Integer... values) {
    super.onProgressUpdate(values);
    progressUpdate(values[0]);
}

@SuppressWarnings("deprecation")
public void progressUpdate(int percentageComplete) {
    CharSequence contentText = percentageComplete + "% complete";
    mNotification.setLatestEventInfo(mContext, mContentTitle, contentText,
            mContentIntent);            
    mNotificationManager.notify(NOTIFICATION_ID, mNotification);

    if(percentageComplete==100){

        try {
            Log.e("file path ",file.getAbsolutePath());
            Uri path = Uri.fromFile(file);
            notificationIntent.setDataAndType(path, "application/pdf");
            notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(notificationIntent);
            finish();

        } catch (ActivityNotFoundException e) {
            Toast.makeText(getApplicationContext(),
                    "Unable to open file ,PDF Reader application is not installed in your device", Toast.LENGTH_SHORT).show();
        }

    }
}

1 个答案:

答案 0 :(得分:1)

在您的应用处于后台或关闭后,您不应显示吐司/对话框。您可以从Activity生命周期的onPause()方法处理此问题,采用布尔值并在onPause()上将其设置为true。如果它的真实意味着你的应用程序在后台,你不应该显示对话框。