Android - 从服务更新ProgressBar,有可能吗?

Web*_*ter 4 java mobile android

我正在尝试从服务更新进度条.我不知道这是否正确,但我必须这样做.在服务中,我正在尝试上传图片,它将返回通知栏的进度.现在,我想添加一个进度条作为指标,并在通知栏上删除通知.

这些是我用来调用ProgressBar的代码

LayoutInflater inflater = (LayoutInflater) getApplicationContext()
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    View v = inflater.inflate(R.layout.fragment_doc, null);

    progressBar = (ProgressBar) v.findViewById(R.id.imgProgressBar);
Run Code Online (Sandbox Code Playgroud)

它不会返回任何错误,但是当我尝试使用更新progressBar时

progressBar.setProgress(进度)

什么都没发生..我该怎么办,我的代码有什么问题吗?

将欣赏任何输入.谢谢

小智 7

更新您的进度条不正确...您应该使用广播接收器根据服务更新您的活动或片段

从服务你应该发送BroadCast

 Intent broadcastIntent = new Intent();
        broadcastIntent.setAction(ACTION_NAME);       
        sendBroadcast(broadcastIntent);
Run Code Online (Sandbox Code Playgroud)

对于Activity或Framgent

private MyBroadRequestReceiver receiver;
Run Code Online (Sandbox Code Playgroud)

on onCreate

IntentFilter filter = new IntentFilter(ACTION_NAME);
 receiver = new MyBroadRequestReceiver();
registerReceiver( receiver, filter);
Run Code Online (Sandbox Code Playgroud)

 @Override
    public void onDestroy() {
        this.unregisterReceiver(receiver);
        super.onDestroy();
    }
Run Code Online (Sandbox Code Playgroud)

并在您要更新进度条的活动或片段中

public class MyBroadRequestReceiver extends BroadcastReceiver{

        @Override
        public void onReceive(Context context, Intent intent) {

         //update your progressbar here

        }


    }
Run Code Online (Sandbox Code Playgroud)