Mri*_*lla 15 android android-notifications android-notification-bar android-download-manager
我正在使用DownloadManager该类以编程方式下载文件.一切正常,但我不能让下载完成通知持续.下载完成后立即消失.这是我的代码:
Request rqtRequest = new Request(Uri.parse(((URI) vewView.getTag()).toString()));
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
rqtRequest.setShowRunningNotification(true);
} else {
rqtRequest.setNotificationVisibility(Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
}
((DownloadManager) getSystemService(DOWNLOAD_SERVICE)).enqueue(rqtRequest);
Run Code Online (Sandbox Code Playgroud)
我在网上看到了一些与此相关的问题,但我找不到解决方案.
Dav*_*unt 16
DownloadManager不支持Gingerbread的完成通知; 你必须自己展示它.
使用BroadcastReceiver检测下载完成时间并显示您自己的通知:
public class DownloadBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) {
//Show a notification
}
}
}
Run Code Online (Sandbox Code Playgroud)
并在您的清单中注册:
<receiver android:name="com.zolmo.twentymm.receivers.DownloadBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.DOWNLOAD_COMPLETE"/>
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
此外,setNotificationVisibility还添加了API级别11(Honeycomb)而不是ICS.我不确定您是否故意使用ICS常量,但您可以将代码更改为以下内容以使用Honeycomb上的系统通知:
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
rqtRequest.setShowRunningNotification(true);
} else {
rqtRequest.setNotificationVisibility(Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7616 次 |
| 最近记录: |