在Android的Notification中显示进度条
来源:互联网 发布:了不起的node 编辑:程序博客网 时间:2024/05/16 09:29
http://vyphn.javaeye.com/blog/799126
最近研究了Notification,参考了一些文档,写了一些心得。在官方文档中得知在Android的Notification中可以显示进度条 ,就想做个例子试一下。在网上查了下,没有找到
。决定自己写下,费了九牛二虎之力搞定了,现在拿出与大家分享下,废话少说,上代码:先自定义一个view
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:padding="10dp"
- android:background="#880490FF"
- >
- <ImageView android:id="@+id/image"
- android:layout_width="wrap_content"
- android:layout_height="fill_parent"
- />
- <ProgressBar
- android:id="@+id/pb"
- android:layout_width="180dip"
- android:layout_height="wrap_content"
- style="?android:attr/progressBarStyleHorizontal"
- android:layout_gravity="center_vertical"/>
- <TextView
- android:id="@+id/tv"
- android:layout_width="wrap_content"
- android:layout_height="fill_parent"
- android:textSize="16px"
- android:textColor="#FF0000"/>
- </LinearLayout>
接着在Activity中写了逻辑代码:
- package com.jieer;
- import android.app.Activity;
- import android.app.Notification;
- import android.app.NotificationManager;
- import android.app.PendingIntent;
- import android.content.Intent;
- import android.os.Bundle;
- import android.os.Handler;
- import android.os.Message;
- import android.view.View;
- import android.widget.Button;
- import android.widget.RemoteViews;
- public class MainActivity extends Activity {
- //当前进度条里的进度值
- private int progress=0;
- private RemoteViews view=null;
- private Notification notification=new Notification();
- private NotificationManager manager=null;
- private Intent intent=null;
- private PendingIntent pIntent=null;//更新显示
- private Handler handler=new Handler(){
- @Override
- public void handleMessage(Message msg) {
- // TODO Auto-generated method stub
- view.setProgressBar(R.id.pb, 100, progress, false);
- view.setTextViewText(R.id.tv, "下载"+progress+"%");//关键部分,如果你不重新更新通知,进度条是不会更新的
- notification.contentView=view;
- notification.contentIntent=pIntent;
- manager.notify(0, notification);
- super.handleMessage(msg);
- }
- };
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- manager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
- view=new RemoteViews(getPackageName(),R.layout.custom_dialog);
- intent=new Intent(MainActivity.this,NotificationService.class);
- pIntent=PendingIntent.getService(MainActivity.this, 0, intent, 0);
- Button button=(Button)findViewById(R.id.bt);
- button.setOnClickListener(new Button.OnClickListener(){
- @Override
- public void onClick(View v) {
- //通知的图标必须设置(其他属性为可选设置),否则通知无法显示
- notification.icon=R.drawable.icon;
- view.setImageViewResource(R.id.image, R.drawable.icon);//起一个线程用来更新progress
- new Thread(new Runnable(){
- @Override
- public void run() {
- for(int i=0;i<20;i++){
- progress=(i+1)*5;
- try {
- if(i<19){
- Thread.sleep(1000);
- }else {
- Thread.currentThread().interrupt();
- }
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- Message msg = new Message();
- handler.sendMessage(msg);
- }
- }
- }).start();
- }
- });
- }
- }
- 在Android的Notification中显示进度条
- 在Android的Notification中显示进度条
- 在Android的Notification中显示进度条
- 在Android的Notification中显示进度条
- Notification中显示进度条
- Android中显示在标题上的进度条
- Android 在通知中显示进度条
- notification显示进度条
- Android多任务下载,使用Notification显示、更新进度条
- 58 Android Notification 进度条
- android Notification 进度条
- Android进度条显示在标题栏
- 在DBGridEh中显示进度条
- Android 中状态栏(屏幕顶部)消息的显示 Notification
- 在Android中使用Notification
- android学习笔记之显示在标题上的进度条
- 【Android开发】范例1-显示在标题上的进度条
- 使用C#在进度条中显示复制文件的进度
- 北京人深度爆料超市的惊人内幕 看完目瞪口呆
- 程序集注册工具 (Regasm.exe)
- Android vs iPhone icon设计指南(翻译理论)
- 对近期生活的整理和反省
- 常用的分页SQL语句
- 在Android的Notification中显示进度条
- 浙大ZOJ PAT practice - 1002
- 分析jQuery工具的测试操作
- 博客, 就选在这里了
- 用心情去游览
- TOMCAT OutOfMemory 正解
- 一切都是最好的安排
- Office2010过期怎么办
- CBD神马的 都是浮云!