带进度条的状态栏

xml文件: 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(); } }); } }
posted @ 2012-08-31 08:19  Dive  阅读(446)  评论(0编辑  收藏  举报