在科尔多瓦本地通知中显示进度条
问题描述:
我使用这个伟大的插件https://github.com/katzer/cordova-plugin-local-notifications来下载文件时实现本地通知。我不知道如何在本地通知中显示进度条http://javatechig.com/wp-content/uploads/2014/05/Displaying-Progress-Notification-in-Android-Example.png 你能帮忙吗?在科尔多瓦本地通知中显示进度条
答
使用插件科尔多瓦 - 文件传输并进行以下修改:
您可以更改插件这种方式对于Android平台。在FileTransfer
类
import android.content.res.Resources;
import android.content.Context;
import android.app.NotificationManager;
import android.support.v4.app.NotificationCompat;
import android.support.v4.app.NotificationCompat.Builder;
论方法下载行〜700:
package org.apache.cordova.filetransfer;
import android.app.NotificationManager;
import android.os.AsyncTask;
import android.support.v4.app.NotificationCompat;
import android.util.Log;
class FileProgressBarTask extends AsyncTask<Void, Integer, Integer> {
private NotificationCompat.Builder mBuilder;
private NotificationManager mNotificationManager;
int id = 0;
int progress = 0;
FileProgressBarTask(NotificationCompat.Builder mBuilder, NotificationManager mNotificationManager, int id){
Log.d("TAG", "Progress Bar");
this.mBuilder = mBuilder;
this.mNotificationManager = mNotificationManager;
this.id = id;
super.execute();
}
@Override
protected void onPreExecute(){
super.onPreExecute();
mBuilder.setProgress(150, 0, false);
mNotificationManager.notify(id, mBuilder.build());
}
@Override
protected void onProgressUpdate(Integer... values){
mBuilder.setProgress(150, values[0], false);
mNotificationManager.notify(id, mBuilder.build());
super.onProgressUpdate(values);
}
@Override
protected Integer doInBackground(Void... params) {
return null;
}
@Override
protected void onPostExecute(Integer result){
super.onPostExecute(result);
mBuilder.setContentText("Download Concluído");
mBuilder.setProgress(0, 0, false);
mNotificationManager.notify(id, mBuilder.build());
}
}
更改类FileTransfer
与娄代码:
与娄代码创建FileProgressBarTask
类
Context contextApplication = cordova.getActivity().getApplicationContext();
Resources resources = contextApplication.getResources();
String pkgName = contextApplication.getPackageName();
int resId = resources.getIdentifier("ic_action_download", "drawable", pkgName);
mNotificationManager = (NotificationManager) cordova.getActivity().getSystemService(Context.NOTIFICATION_SERVICE);
mBuilder = new NotificationCompat.Builder(cordova.getActivity());
mBuilder.setContentTitle("Download File")
.setContentText("Progress")
.setSmallIcon(resId);
final FileProgressBarTask progressBarTask = new FileProgressBarTask(mBuilder, mNotificationManager, id);
在方法d上查找块代码包含ownload:基于
long lng = Math.abs((progress.getLoaded()/100)/100);
progressBarTask.onProgressUpdate(Integer.parseInt(String.valueOf(lng)));
:
得到任何回答
while
和progress.setLoaded(inputStream.getTotalRawBytesRead());
的方法下载,波纹管插入代码? – 2015-02-04 19:18:41不幸的是没有 – ginfo1 2015-02-05 20:45:18