commit
1cb7a3a504
@ -0,0 +1,98 @@ |
|||||||
|
package com.arialyy.simple.notification; |
||||||
|
|
||||||
|
import android.app.NotificationManager; |
||||||
|
import android.content.Context; |
||||||
|
import android.os.Environment; |
||||||
|
import android.support.v4.app.NotificationCompat; |
||||||
|
import com.arialyy.aria.core.Aria; |
||||||
|
import com.arialyy.aria.core.task.Task; |
||||||
|
import com.arialyy.frame.util.show.L; |
||||||
|
import com.arialyy.frame.util.show.T; |
||||||
|
import com.arialyy.simple.R; |
||||||
|
|
||||||
|
/** |
||||||
|
* Created by Aria.Lao on 2017/1/18. |
||||||
|
*/ |
||||||
|
|
||||||
|
public class SimpleNotification { |
||||||
|
private static final String DOWNLOAD_URL = |
||||||
|
"http://static.gaoshouyou.com/d/6e/e5/ff6ecaaf45e532e6d07747af82357472.apk"; |
||||||
|
|
||||||
|
private NotificationManager mManager; |
||||||
|
private Context mContext; |
||||||
|
private NotificationCompat.Builder mBuilder; |
||||||
|
private static final int mNotifiyId = 0; |
||||||
|
|
||||||
|
public SimpleNotification(Context context) { |
||||||
|
mContext = context; |
||||||
|
init(); |
||||||
|
} |
||||||
|
|
||||||
|
private void init() { |
||||||
|
mManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE); |
||||||
|
mBuilder = new NotificationCompat.Builder(mContext); |
||||||
|
mBuilder.setContentTitle("Aria Download Test") |
||||||
|
.setContentText("进度条") |
||||||
|
.setProgress(100, 0, false) |
||||||
|
.setSmallIcon(R.mipmap.ic_launcher); |
||||||
|
mManager.notify(mNotifiyId, mBuilder.build()); |
||||||
|
Aria.whit(mContext).addSchedulerListener(new DownloadCallback(mBuilder, mManager)); |
||||||
|
} |
||||||
|
|
||||||
|
public void start() { |
||||||
|
Aria.whit(mContext) |
||||||
|
.load(DOWNLOAD_URL) |
||||||
|
.setDownloadName("notification_test.apk") |
||||||
|
.setDownloadPath( |
||||||
|
Environment.getExternalStorageDirectory() + "/Download/notification_test.apk") |
||||||
|
.start(); |
||||||
|
} |
||||||
|
|
||||||
|
public void stop() { |
||||||
|
Aria.whit(mContext).load(DOWNLOAD_URL).stop(); |
||||||
|
} |
||||||
|
|
||||||
|
private static class DownloadCallback extends Aria.SimpleSchedulerListener { |
||||||
|
NotificationCompat.Builder mBuilder; |
||||||
|
NotificationManager mManager; |
||||||
|
|
||||||
|
private DownloadCallback(NotificationCompat.Builder builder, NotificationManager manager) { |
||||||
|
mBuilder = builder; |
||||||
|
mManager = manager; |
||||||
|
} |
||||||
|
|
||||||
|
@Override public void onTaskStart(Task task) { |
||||||
|
super.onTaskStart(task); |
||||||
|
} |
||||||
|
|
||||||
|
@Override public void onTaskPre(Task task) { |
||||||
|
super.onTaskPre(task); |
||||||
|
} |
||||||
|
|
||||||
|
@Override public void onTaskStop(Task task) { |
||||||
|
super.onTaskStop(task); |
||||||
|
} |
||||||
|
|
||||||
|
@Override public void onTaskRunning(Task task) { |
||||||
|
super.onTaskRunning(task); |
||||||
|
long len = task.getFileSize(); |
||||||
|
int p = (int) (task.getCurrentProgress() * 100 / len); |
||||||
|
if (mBuilder != null) { |
||||||
|
mBuilder.setProgress(100, p, false); |
||||||
|
mManager.notify(mNotifiyId, mBuilder.build()); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Override public void onTaskComplete(Task task) { |
||||||
|
super.onTaskComplete(task); |
||||||
|
if (mBuilder != null) { |
||||||
|
mBuilder.setProgress(100, 100, false); |
||||||
|
mManager.notify(mNotifiyId, mBuilder.build()); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Override public void onTaskCancel(Task task) { |
||||||
|
super.onTaskCancel(task); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue