`

ProgressBar updating using Message Handler

阅读更多

You're going to learn how to make a progressbar, which gives you a feedback what's going on in the background.

 

Let say you have a LoadingScreen activity (loadingscreen.xml layout), and a Main activity (main.xml).

 

You'd like to do some job in the Main activity, and update the progressbar status at the same time. To do this, we are going to use Messages. Although, you can update you're progressbar by sending the progressbar instance itself to your Main activity, but that's obviously not the prettiest solution.

What we going to do is:

 

1. Declaring a progressbar instance in LoadingScreen Activity:

So in your LoadingScreen.java, after Oncreate(), you should add something like this line to your codeline: (don't forget to add a progressbar to your layout first!)

 

ProgressBar pb = (ProgressBar)findViewById(R.id.ProgressBar01);

 2. Setting up a Handler to handle Messages from outside: These few line go right after declaring the progressbar. We are also declaring "progress" variable, and update it's value from the Message we get.

Now that we know the progress status, simply just update the progressbar with it. (It has to be an int number, value: 0-100.)

/* Setting up handler for ProgressBar */
pbHandle = new Handler(){
	@Override
  public void handleMessage(Message msg) {
  	/* get the value from the Message */
    int progress = msg.arg1;
    pb.setProgress(progress);
  }
};

 Okay, we finished message handling, now let's send some messages from another (in this case Main) activity.

3. Creating and Sending Messages

Please notice that in the 3rd line, we put the progress value (it depends on your project) into the Message's arg1 variable.

Go to your Main(or any other) activity, and paste the following where you need to send the message about the progress.

/* Creating a message */
Message progressMsg = new Message();
progressMsg.arg1 = progress();
/* Sending the message */
pbHandle.sendMessage(progressMsg);

 That's it.

One more thing: you should not use the same message twice, in the same cycle. If you want to send 2 messages in a cycle, you should create a new message with another instance name, Otherwise your app will be crashed.

分享到:
评论

相关推荐

    Progressbar进度条的使用

    private Handler progressBarHandler = new Handler() { @Override public void handleMessage(Message msg) { int progress = msg.what; // 获取消息中的进度值 progressBar.setProgress(progress); // 更新...

    android mars视频代码 Handler 源码 ProgressBarHandler

    www.mars-droid.com/Android开发视频教程 代码 源码 mars老师讲课 android 视频源码 Handler ProgressBarHandler(在此特别感谢mars的无私奉献,此代码为跟随视频边学边做的)

    android Handler和ProgressBar的用法举例

    一个简单的小例子,用来学习android Handler和ProgressBar的用法

    Handler的使用

    progressBarHandler.sendMessageDelayed(progressBarHandler.obtainMessage(i), 1000); // 这里添加实际的耗时操作,比如下载进度 try { Thread.sleep(1000); } catch (InterruptedException e) { e....

    Handler使用相关的三个实例

    主线程的Handler接收到Message后,在`handleMessage()`方法内,可以安全地使用这些数据来更新UI组件,如TextView、ProgressBar等。 4. **Message的使用** Message是消息的载体,包含了消息的类型(`what`)、附加...

    android - progressBar

    在Android开发中,`ProgressBar`是一个非常常见的组件,它用于显示进度或加载状态。这个组件在用户界面中扮演着重要角色,特别是在执行耗时操作如网络请求、文件下载或者数据库操作时,为用户提供反馈,表明应用程序...

    Android Handler 线程 示例代码

    `Looper`是主线程的一个循环器,它不断从`MessageQueue`中取出`Message`并分发给对应的`Handler`处理。在进度条示例中,工作线程可能通过`Handler`向主线程的`Looper`发送消息,消息包含更新进度条的指令,然后`...

    Android handler的三个小例子(最简单的,进度条,随机变换TextView字体颜色)

    1. **创建`Handler`实例**:在主线程中定义一个`Handler`对象,重写`handleMessage(Message msg)`方法,处理接收到的消息。 2. **启动`Looper`**:主线程默认有一个`Looper`,但需要通过`Looper.prepare()`来初始化...

    带动画的横向ProgressBar

    在Android开发中,ProgressBar是用户界面中非常常见的一种组件,用于表示某个操作的进度或等待状态。本主题聚焦于“带动画的横向ProgressBar”,这种组件能够以动态的方式展示进度变化,提升用户体验。以下是对这个...

    Android应用源码之ProgressBar 几乎全部的用法

    可以使用Handler或CountDownTimer来控制进度条的显示和隐藏,比如在后台任务开始时显示,任务完成时隐藏。 9. **动画效果** Android提供了`android:animationDuration`属性,可以控制进度条动画的持续时间。同时...

    AndroidTest_ProgressBar_DialogProgress_AlertDialog

    3) Service使用ProgressBar,使用Handler调用主线程的资源 2、主线程使用ProgressDialog进行显示 3、启动Service,然后创建AlertDialog.build创建,确认后跳转到Activity,再动态生成ProgressBar 备注: Service...

    android-Handler的使用

    在示例代码 `HandlerActivity` 中,可以看到 `MyThread` 类可能用于执行后台任务,然后通过 Handler 回调到主线程更新 UI(例如 `TextView` 和 `ProgressBar`)。按钮点击事件启动了新的线程,并创建了一个新的 ...

    页面上现有ProgressBar控件progressBar,请用书写线程以10秒的的时间完成其进度显示工作

    在Windows Forms或WPF应用程序中,`ProgressBar`控件是一个常用元素,用于向用户展示某个操作的进度。在这个场景中,我们需要使用线程技术来控制`ProgressBar`在10秒内逐渐填充,以模拟一个耗时操作的进度。下面将...

    解析android中ProgressBar的用法

    当需要停止进程时,可以通过发送一个带有`what`字段为`GUI_STOP_NOTIFIER`的Message来通知Handler。这样,Handler可以接收到这个消息并相应地处理,比如停止线程,隐藏ProgressBar等。 总的来说,ProgressBar在...

    ProgressBar的简单应用

    可以使用AsyncTask或者Handler来实现: ```java new AsyncTask, Integer, Void>() { @Override protected Void doInBackground(Void... voids) { for (int i = 0; i ; i++) { publishProgress(i); // 模拟...

    Android Handler解析

    当我们通过Handler对象发送消息或Runnable对象时,这些对象会被放入与该Handler关联的MessageQueue中。Looper会不断地从MessageQueue中取出消息并调用Handler的handleMessage()方法来处理这些消息。 ## Handler的...

    ProgressBar的使用

    ProgressBar是Android系统中一个非常重要的UI组件,它用于显示进度或加载状态,为用户提供等待反馈。在Android开发中,ProgressBar的使用广泛,无论是文件下载、数据加载还是长时间运算,都可以用到它来提升用户体验...

    Android 自定义各式各样的圆形ProgressBar

    在Android开发中,ProgressBar是用户界面(UI)设计中一个重要的元素,用于向用户展示某个操作的进度或者等待状态。通常,系统提供的ProgressBar样式有限,但开发者可以通过自定义来实现更多样化的效果,以满足不同...

    c# ProgressBar 光滑进度条 源码

    在C#编程中,ProgressBar控件是用于向用户显示任务进度的一个重要元素。"Smooth ProgressBar"则是一种增强型的进度条,它提供了平滑、连续的动画效果,使得用户界面更具吸引力和反馈感。在Windows Forms或WPF应用中...

    progressBar进度条

    在Windows应用程序开发中,进度条(ProgressBar)是一个非常常见的组件,用于向用户显示某个操作的进度,例如文件复制、解压或下载等。在C#的Winform环境中,我们可以使用ProgressBar控件来实现这一功能。这个组件...

Global site tag (gtag.js) - Google Analytics