展会信息港展会大全

Android Handler 多线程通信示例(ProgressBar)
来源:互联网   发布日期:2015-10-03 10:55:43   浏览:1683次  

导读:Android Handler 多线程通信示例(ProgressBar)1、修改main.xml文件?xml version=1.0 encoding=utf-8?LinearLayoutxmlns:android=http://schemas.android.com/apk/res/androidandroid:orientation=......

Android Handler 多线程通信示例(ProgressBar)

1、修改main.xml文件

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<ProgressBar

style="?android:attr/progressBarStyleHorizontal"

android:id="@+id/progressBar1"

android:max="100"

android:progress="0"

android:secondaryProgress="0"

android:visibility="visible"

android:layout_height="wrap_content"

android:layout_width="match_parent"></ProgressBar>

</LinearLayout>

2、声明子线程SonThread.java

package com.bison;

import android.os.Message;

public class SonThread extends Thread {

private int i = 0;

@Override

public void run() {

while (i < 100) {

i = i + 10;

Message msg = new Message();

msg.arg1 = i;

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

HandlerTestActivity.myHandler.sendMessage(msg);

}

if (i == 100) {

HandlerTestActivity.myHandler.removeCallbacks(this);

}

}

}

3、MainActivity代码

package com.bison;

import android.app.Activity;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.widget.ProgressBar;

public class HandlerTestActivity extends Activity {

private ProgressBar progressBar;

private SonThread myThread;

public static Handler myHandler;

public void init() {

progressBar = (ProgressBar) findViewById(R.id.progressBar1);

myThread = new SonThread();

myThread.start();

myHandler = new Handler() {

@Override

public void handleMessage(Message msg) {

super.handleMessage(msg);

progressBar.setProgress(msg.arg1);

}

};

}

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

init();

}

}

PS:没有打上注释,不过Handler的通信机制还是比较好理解的。

赞助本站

人工智能实验室

相关热词: Handler 多线程 ProgressBar

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港