我已经使用通知来显示下载文件的状态。我只是使用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();
}
}
}
答案 0 :(得分:1)
在您的应用处于后台或关闭后,您不应显示吐司/对话框。您可以从Activity生命周期的onPause()方法处理此问题,采用布尔值并在onPause()上将其设置为true。如果它的真实意味着你的应用程序在后台,你不应该显示对话框。