android+通知栏自动更新,小熊安卓之路-Android进阶之在通知栏显示更新APP进度

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

大家可以直接拿去用,稍微改改就能用哦!注意,仅实现通知栏显示功能,不提供下载进度条监听的代码

/**

* Created by xlzhen on 11/11 0011.

* 在通知栏显示消息 下载

*/

public class NotificationDownloadUtils {

public static NotificationManager mNotificationManager;

public static NotificationCompat.Builder mBuilder;

public static String contentTitle;

private static String TAG=NotificationDownloadUtils.class.getName();

public static void show(Context context,int icon, String contentTitle, CharSequence contentText) {

NotificationDownloadUtils.contentTitle = contentTitle;

Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(),

icon);

mBuilder = new NotificationCompat.Builder(

context).setLargeIcon(bitmap)

.setSmallIcon(icon)

.setContentTitle(contentTitle).setContentText("正在下载"+contentText+",请稍候")

.setContentInfo("12").setWhen(System.currentTimeMillis())

.setAutoCancel(false);

Intent resultIntent = new Intent();

TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);

stackBuilder.addNextIntent(resultIntent);

PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,

PendingIntent.FLAG_UPDATE_CURRENT);

mBuilder.setContentIntent(resultPendingIntent);

mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

mNotificationManager.notify(1, mBuilder.build());

}

public static void update(Context context,CharSequence contentText) {

if (mBuilder != null && contentTitle != null) {

if (!"100".equals(contentText.toString())) {

Log.v(TAG,"正在下载更新包:" + contentText.toString() + "%");

mBuilder.setContentText("已下载" + contentText + "%");

mNotificationManager.notify(1, mBuilder.build());

} else {

Log.v(TAG, "更新包下载完毕:" + contentText.toString() + "%");

mNotificationManager.cancel(1);

// 新APK在存储卡上的位置

String fileName = Environment.getExternalStorageDirectory() + "/你的内存卡存储目录/"+contentTitle+".apk";

// 通过启动一个Intent让系统来帮你安装新的APK

Intent intent = new Intent(Intent.ACTION_VIEW);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive");

context.startActivity(intent);

android.os.Process.killProcess(android.os.Process.myPid());

}

}

}

public static void error(){

if (mBuilder != null && contentTitle != null) {

Log.v(TAG, "下载失败");

mBuilder.setContentText("网络故障,下载失败!请检查您的网络链接");

mNotificationManager.notify(1, mBuilder.build());

new Handler().postDelayed(new Runnable() {

@Override

public void run() {

mNotificationManager.cancel(1);

}

},1000);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值