android 进程的优先级
2013-10-06 14:13:31 来源:WEB开发网核心提示:说明:若多个线程向主线程发送消息,则参数what用于区别不同的线程,android 进程的优先级(5),2、sendEmptyMessageAtTime(int what,long uptime);作用:从work thead(工作线程)按指定时间发送空消息,说明:第二个参数uptime:指定的时间,@Override
说明:若多个线程向主线程发送消息,则参数what用于区别不同的线程。
2、sendEmptyMessageAtTime(int what,long uptime);
作用:从work thead(工作线程)按指定时间发送空消息。
说明:第二个参数uptime:指定的时间。
3、sendEmptyMessageDelayed(int what,long delay);
作用:从work thead(工作线程)延迟发送空消息。
说明:第二个参数用于指定延迟的时间,单位:毫秒。
5、sendMessage(Message msg);
作用:从work thead(工作线程)向主线程发送消息;
说明:msg是存放消息数据的对象。
6、sendMessageAtTime(Message msg,long uptime);
作用:从work thead(工作线程)按指定时间向主线程发送消息
7、sendMessageDelayed(Message msg,long delay);
作用:从work thead(工作线程)延迟指定时间向主线程发送消息。
8、handleMessage(Message msg);
作用:接收并处理从work thread发送的消息。
说明:参数-msg:send***Message发送过来的消息对象。
图-5是Android处理消息机制的示意图:
图-5
图-5显示了Android系统提供了一个称为Looper(循环对列)用来管理消息对列,各线程通过Handler类的Send***Message命令将消息发送至消息对列,Looper再将消息对列中的消息依次交给主线程处理。
12.4.3.示例
从两个工作线程向主线程发送不同的消息,主线程接收消息并显示不同的处理信息。
步骤1、以下是Activity类中的onClick()方法中的代码,该方法用于处理按钮单击事件。
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.btnDownload://若单击了标题为下载的按钮
//创建一个work thread(工作线程)线程对象
new Thread(){
public void run() {
//以下一行代码模拟下载进度,执行时间约为10秒
CommonUtils.timeConsuming(10);
//创建消息对象
Message msg=new Message();
//CommonUtils.FLAG_DOWNLOAD值代表下载操作
msg.what=CommonUtils.FLAG_DOWNLOAD;
msg.obj="download finished";
mHandler.sendMessage(msg);//发送消息
};
}.start();//启动线程
break;
case R.id.btnUpdate://若单击了标题为更新的按钮
//创建一个work thread(工作线程对象)
new Thread(){
public void run() {
//以下一行代码模拟更新进度,执行时间约为10秒
CommonUtils.timeConsuming(8);
//创建消息对象
Message msg=new Message();
//CommonUtils.FLAG_UPDATE代表更新操作
msg.what=CommonUtils.FLAG_UPDATE;
msg.obj="update finished";
mHandler.sendMessage(msg);//发送消息
};
}.start();//启动线程
break;
}
}
步骤2、以下是在Activity.onCreate()方法中(主线程)中创建的Handler对象-mHandler:
Button btnDownload.setOnClickListener(this);
Button btnUpdate.setOnClickListener(this);
mHandler=new Handler(){
@Override
public void handleMessage(Message msg) {
switch(msg.what){
case CommonUtils.FLAG_DOWNLOAD:
mTextView.setText(“下载结束”);
break;
case CommonUtils.FLAG_UPDATE:
mTextView.setText(“更新结束”);
break;
}
}
说明:
1、CommonUtils是一个自定义的工具类,该类中包括以下两个int类型的常量:
2、sendEmptyMessageAtTime(int what,long uptime);
作用:从work thead(工作线程)按指定时间发送空消息。
说明:第二个参数uptime:指定的时间。
3、sendEmptyMessageDelayed(int what,long delay);
作用:从work thead(工作线程)延迟发送空消息。
说明:第二个参数用于指定延迟的时间,单位:毫秒。
5、sendMessage(Message msg);
作用:从work thead(工作线程)向主线程发送消息;
说明:msg是存放消息数据的对象。
6、sendMessageAtTime(Message msg,long uptime);
作用:从work thead(工作线程)按指定时间向主线程发送消息
7、sendMessageDelayed(Message msg,long delay);
作用:从work thead(工作线程)延迟指定时间向主线程发送消息。
8、handleMessage(Message msg);
作用:接收并处理从work thread发送的消息。
说明:参数-msg:send***Message发送过来的消息对象。
图-5是Android处理消息机制的示意图:
图-5
图-5显示了Android系统提供了一个称为Looper(循环对列)用来管理消息对列,各线程通过Handler类的Send***Message命令将消息发送至消息对列,Looper再将消息对列中的消息依次交给主线程处理。
12.4.3.示例
从两个工作线程向主线程发送不同的消息,主线程接收消息并显示不同的处理信息。
步骤1、以下是Activity类中的onClick()方法中的代码,该方法用于处理按钮单击事件。
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.btnDownload://若单击了标题为下载的按钮
//创建一个work thread(工作线程)线程对象
new Thread(){
public void run() {
//以下一行代码模拟下载进度,执行时间约为10秒
CommonUtils.timeConsuming(10);
//创建消息对象
Message msg=new Message();
//CommonUtils.FLAG_DOWNLOAD值代表下载操作
msg.what=CommonUtils.FLAG_DOWNLOAD;
msg.obj="download finished";
mHandler.sendMessage(msg);//发送消息
};
}.start();//启动线程
break;
case R.id.btnUpdate://若单击了标题为更新的按钮
//创建一个work thread(工作线程对象)
new Thread(){
public void run() {
//以下一行代码模拟更新进度,执行时间约为10秒
CommonUtils.timeConsuming(8);
//创建消息对象
Message msg=new Message();
//CommonUtils.FLAG_UPDATE代表更新操作
msg.what=CommonUtils.FLAG_UPDATE;
msg.obj="update finished";
mHandler.sendMessage(msg);//发送消息
};
}.start();//启动线程
break;
}
}
步骤2、以下是在Activity.onCreate()方法中(主线程)中创建的Handler对象-mHandler:
Button btnDownload.setOnClickListener(this);
Button btnUpdate.setOnClickListener(this);
mHandler=new Handler(){
@Override
public void handleMessage(Message msg) {
switch(msg.what){
case CommonUtils.FLAG_DOWNLOAD:
mTextView.setText(“下载结束”);
break;
case CommonUtils.FLAG_UPDATE:
mTextView.setText(“更新结束”);
break;
}
}
说明:
1、CommonUtils是一个自定义的工具类,该类中包括以下两个int类型的常量:
更多精彩
赞助商链接