我不是一个Android开发人员,但我需要制作一个应用程序,所以因为我知道一些HTML/JavaScript/CSS我决定使用PhoneGap(Cordova).我使用一个名为下载管理器(github)的插件,它下载文件并显示进度通知.一切正常,但是一旦我点击通知,我想让我回到我的应用程序的主要活动,但这不会发生.
这是负责下载和通知的文件,涉及的代码如下:
intent = new Intent();
intent.putExtra("cancel_download", 1);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
pend = PendingIntent.getActivity(cordova.getActivity(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
mNotifyManager = (NotificationManager) cordova.getActivity().getSystemService(Activity.NOTIFICATION_SERVICE);
mBuilder = new NotificationCompat.Builder(cordova.getActivity())
.setSmallIcon(android.R.drawable.stat_sys_download)
.setContentTitle(notificationTitle)
/*.setSubText("Tap to CANCEL")*/
.setTicker(ticker)
.setContentIntent(pend)
.setContentText("0% - " + fileName);
mNotificationId = new Random().nextInt(10000);
...
...
//While(downloading)
if(useNotificationBar) {
mBuilder.setProgress(100, newProgress, false);
mBuilder.setContentText(step + "% - " + fileName);
mBuilder.setContentIntent(pend);
mNotifyManager.notify(mNotificationId, mBuilder.build());
}
Run Code Online (Sandbox Code Playgroud)
当我点击通知没有任何反应时,我无法使其工作.怎么了?抱歉英语不好.
我正在尝试使用命令行在 Windows 中提取 tar.gz 文件并获取进度百分比。首先,我希望通过一次操作来提取它(而不是提取 tar 然后解压缩)。我发现唯一可以做到这一点的两个工具是Tartool和 7zip。Tartool 很好(也很容易检测错误),但没有进展。7zip你必须使用strem in和out,所以我创建了一个基本的bat文件:
cd /d %~dp0
7z.exe x "%1" -so | 7z.exe x -aoa -si -ttar -o"%2"
Run Code Online (Sandbox Code Playgroud)
它与提取工作正常,但在整个过程中进度仍然为 0%(我尝试从 cmd 运行),我认为这是因为流输入和输出。
我知道即使在执行此操作(提取 tgz 文件)时,winrar 也可以显示进度百分比,那么我怎样才能获得相同的结果呢?
我能达到的最接近目标是获取输出目录大小并除以 tar.gz 文件的未压缩大小(通过 7z.exe l 函数获得)。而且进度不是线性的,它仅在提取文件时发生变化(例如,如果我的 targz 包含 2 个非常大的文件,则在提取过程中我只能获得 0%、50% 和 100%)