android 通知(1)

声明:

//通知管理器
private NotificationManager nmanager;// 统治构造器
private Notification.Builder builder ;

通知初始化

  /**
     *通知初始化
     */
    private void getNotification() {     //通知管理器
        nmanager = (NotificationManager) getSystemService(      Context.NOTIFICATION_SERVICE);//系统通知     //通过构造器设置通知的标题和内容
        builder = new Notification.Builder(getApplicationContext());
        builder.setSmallIcon(R.drawable.ic_launcher);
        builder.setTicker("通知来了");//提示标题
        builder.setContentTitle("下载");    //通知内容标题
        builder.setContentText("正在下载。。。。。");//通知内容
    }

通知进度更新

/**
     * 更新UI
     */
    private Handler handler = new Handler() {
        public void handleMessage(Message msg) {//接收线程发送来的消息
            //更新UI
            builder.setProgress(100, msg.arg1, false);       //1001是该通知的唯一编号,可以调用nmanager.cancel(1001);注销这个通知
            nmanager.notify(1001, builder.build());
            if(msg.what == 1){
                //下载完成
                String name = uri.split("/")[-1];
                builder.setContentTitle(name);
                builder.setContentText("下载完成");
                Toast.makeText(getApplicationContext(), "下载完成", 1).show();
            }
        }
    };
/**
     *  下载放在线程中执行,
     *
     */
    public class MyRunnable implements Runnable {
        @Override
        public void run() {
            //读取的数据存储
            byte[]  result = null;
            HttpClient client = new DefaultHttpClient();
            try {
                Log.i("tag", "uri>>"+uri);
                HttpGet get = new HttpGet(uri);
                HttpResponse response = client.execute(get);
                HttpEntity entity = response.getEntity();
                int stateCode = response.getStatusLine().getStatusCode();
                if(stateCode != 200){
                    Log.i("tag", stateCode+"-->下载失败-->");
                }
                //获取网络输入流
                InputStream in = entity.getContent();
                //获取网路数据总长度
                long total  = entity.getContentLength();
                byte[] bs = new byte[256];
                int len_per = 0;//每次读取的长度,
                ByteArrayOutputStream baos = new  ByteArrayOutputStream();
                int readedLen = 0;//已经读取的数据量
                while((len_per = in.read(bs)) != -1){
                    baos.write(bs, 0, len_per);
                    readedLen += len_per;
                    int progress = (int) ((readedLen*100)/(float)total);
                    Message msg = Message.obtain();
                    msg.arg1 = progress;
                    handler.sendMessage(msg);
                }
                result = baos.toByteArray();
                handler.sendEmptyMessage(1);
            }catch(Exception e){
                e.printStackTrace();
            }finally {
                if(client != null){
                    client.getConnectionManager().shutdown();
                }
            }
        }
    }
时间: 2024-10-14 13:12:54

android 通知(1)的相关文章

20_Android中apk安装器,通过WebView来load进一个页面,Android通知,程序退出自动杀死进程,通过输入包名的方式杀死进程

?? 场景:实现安装一个apk应用程序的过程.界面如下: 编写如下应用,应用结构如下: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_heigh

Xamarin.Android通知详解

一.发送通知的机制 在日常的app应用中经常需要使用通知,因为服务.广播后台活动如果有事件需要通知用户,则需要通过通知栏显示,而在Xamarin.Android下的通知需要获取NotificationManager服务,而该服务需要通过GetSystemService获取,同时还要传递一个标识符.获取了通知管理器后我们就可以实例化Notification,然后再由NotificationManager发送出去.这就是整个过程了.下面我们将一一详解通知. 二.前期准备 为了下面的学习和演示我们需要

Android通知Notification

一个小demo.点击 发送通知 按钮,则发送通知到设备的通知栏.点击 清除通知 则清除通知栏上的消息通知. package zhangphil.notification; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.app.Activity; import android.app.Notification; import android.app.N

Android通知Notification全面剖析

通知 通知是您可以在应用的常规 UI 外部向用户显示的消息.当您告知系统发出通知时,它将先以图标的形式显示在通知区域中.用户可以打开抽屉式通知栏查看通知的详细信息. 通知区域和抽屉式通知栏均是由系统控制的区域,用户可以随时查看. 图 1. 通知区域中的通知. 图 2. 抽屉式通知栏中的通知. 注:除非特别注明,否则本指南均引用版本 4 支持库中的 NotificationCompat.Builder 类.Android 3.0(API 级别 11)中已添加类 Notification.Build

Android通知Notification详解

Notification的使用大体步骤 Notification简介 PendingIntent简介 使用RemoteViews自定义Notification 更新与移除通知 设定提示响应 附录 Notification的使用大体步骤: 1. 获取状态通知栏管理 2. 实例化通知栏构造器 3. 设置NotificationCompat.Builder 4. 设置PendingIntent 5. 显示 因为Android的快速发展,而Android的版本也快速的升级导致了一些兼容性的问题.对于No

android 通知

https://developer.android.com/design/patterns/notifications.html 通知系统可让用户随时了解应用中的相关和即时事件,例如来自好友的新聊天信息或日历事件.可将通知视作新闻频道,在重要的事件发生时提醒用户注意,或者当作日志,在用户未注意时记录事件—可在用户的所有 Android 设备上按需同步. Android 5.0 新增内容 在 Android 5.0 中,通知在结构.外观和功能方面获得了重要的更新: 通知在外观上发生了更改,与新的材

Android通知的基本用法

新建一个Android的项目   通知栏的基本用法 修改activity_main.xml的代码,如下: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:lay

android通知-Notification

android中,当app需要向发送一些通知,让使用者注意到你想要告知的信息时,可以用Notification.下面,就来讨论一下,Notification的用法,我们从实际的小例子来进行学习. 1.新建一个项目,在layout布局里写两个按钮,一个用来开启通知,一个用来关闭通知.下面直接上布局代码. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools=&qu

Android 通知Notification

Android 通知栏Notification的简但使用,效果如上图,废话不说,代码: 1 private void notification() { 2 Notification notification; 3 int notification_id = 11; 4 5 //通过系统服务来获取对象 6 NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SER

Android 通知 相关api记录

记录帖 通知(Notification) 的API 1.使用getSystemService()方法获取系统服务,参数接收一个字符串来确定获取具体的服务,使用通知传入Content.NOTIFICATION_SERVICE 例:NotificationManager manger = (NotificationManager)getSystemService(Content.NOTIFICATION_SERVICE); 2.使用NotificationCompat.Builder()构造器来创建