解决方案 »

  1.   

    1起一个线程,每隔多久就更新一次,执行创建通知栏方法,将进度传过去,就能实时更新进度了
    2设置一个布尔值,判断进度在是否在状态栏,然后进行dialog的显示隐藏
      

  2.   

    1、通知栏显示进度条 可在service中通过NotificationManager实现  每次有进度更新 就notify一次(最好设置每1%刷新一次,若是太快 可能会死机)2、可以为这个进度条设置点击事件,点击了可以取消在通知栏显示,并且显示你想要显示的ProgressDialog。
    关于第二点的点击事件
    在手机的状态栏中显示自定义view,其中比较麻烦的是按钮事件,以下为设置和响应按钮事件的操作
    //声明一个广播来接收事件并响应
    BroadcastReceiver onClickReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
    if (intent.getAction().equals(STATUS_BAR_COVER_CLICK_ACTION)) {
         //在这里处理点击事件
    }
        }
    }; //设置按钮事件
    IntentFilter filter = new IntentFilter();
    filter.addAction(STATUS_BAR_COVER_CLICK_ACTION);
    //filter.addAction(STATUS_BAR_COVER_CLICK_ACTION2); 若不止一个按钮
    registerReceiver(onClickReceiver, filter); Intent buttonIntent = new Intent(STATUS_BAR_COVER_CLICK_ACTION);
    PendingIntent pendButtonIntent = PendingIntent.getBroadcast(this,0,buttonIntent,PendingIntent.FLAG_UPDATE_CURRENT);
    mRemoteViews.setOnClickPendingIntent(R.id.btn, pendButtonIntent);
    //Intent buttonIntent = new Intent(STATUS_BAR_COVER_CLICK_ACTION2);
    //PendingIntent pendButtonIntent2 = PendingIntent.getBroadcast(this,0,buttonIntent2,PendingIntent.FLAG_UPDATE_CURRENT);
    //mRemoteViews.setOnClickPendingIntent(R.id.btn2, pendButtonIntent2);