添加notification例子
This commit is contained in:
@ -33,6 +33,7 @@ import com.arialyy.simple.databinding.ActivityMainBinding;
|
|||||||
import com.arialyy.simple.dialog_task.DownloadDialog;
|
import com.arialyy.simple.dialog_task.DownloadDialog;
|
||||||
import com.arialyy.simple.fragment_task.FragmentActivity;
|
import com.arialyy.simple.fragment_task.FragmentActivity;
|
||||||
import com.arialyy.simple.multi_task.MultiTaskActivity;
|
import com.arialyy.simple.multi_task.MultiTaskActivity;
|
||||||
|
import com.arialyy.simple.notification.SimpleNotification;
|
||||||
import com.arialyy.simple.pop_task.DownloadPopupWindow;
|
import com.arialyy.simple.pop_task.DownloadPopupWindow;
|
||||||
import com.arialyy.simple.single_task.SingleTaskActivity;
|
import com.arialyy.simple.single_task.SingleTaskActivity;
|
||||||
|
|
||||||
@ -104,6 +105,10 @@ public class MainActivity extends BaseActivity<ActivityMainBinding> {
|
|||||||
case R.id.fragment_task:
|
case R.id.fragment_task:
|
||||||
startActivity(new Intent(this, FragmentActivity.class));
|
startActivity(new Intent(this, FragmentActivity.class));
|
||||||
break;
|
break;
|
||||||
|
case R.id.notification:
|
||||||
|
SimpleNotification notification = new SimpleNotification(this);
|
||||||
|
notification.start();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -56,5 +56,14 @@
|
|||||||
style="?buttonBarButtonStyle"
|
style="?buttonBarButtonStyle"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/notification"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:onClick="onClick"
|
||||||
|
android:text="在Notification中使用"
|
||||||
|
style="?buttonBarButtonStyle"
|
||||||
|
/>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</layout>
|
</layout>
|
||||||
|
Reference in New Issue
Block a user