C#写Android应用时handler和message要怎么用?
我用monoforandroid开发android的。想在不同线程之间通信。网上搜到的都是java开发的。但用java开发时handler和message的用法放到C#里...
我用mono for android开发android的。 想在不同线程之间通信。
网上搜到的都是java开发的。 但用java开发时handler和message的用法放到C#里好像不行。 查API查了半天也没搞懂。
希望谁回答下,最好贴个案例。
谢了 展开
网上搜到的都是java开发的。 但用java开发时handler和message的用法放到C#里好像不行。 查API查了半天也没搞懂。
希望谁回答下,最好贴个案例。
谢了 展开
2个回答
展开全部
handler的方法中有post();里面的参数为Runnable类型,一般在主线程中建立handler,子线程向其发送消息,使其更新UI界面,在主线程中,可以通过post(),将Runnable()中的任务加入主线程的消息队列中;
在子线程中,是没有消息队列的,需要自己创建,在主线程中,系统会帮我们创建一个消息队列;
Looper负责消息的传递
这样子线程就可以用post将Runnbale()加入到消息队列中去,这样主线程都可以向子线程发送消息了,如:按钮(点击后发送消息)
class LooperThread extends Thread {
public Handler mHandler;
public void run() {
Looper.prepare();//Looper准备
mHandler = new Handler() {
public void handleMessage(Message msg) {
// process incoming messages here
}
};
Looper.loop();//让Looper动起来
}
}
原则是:先建立Handler,再发送消息,或者post();
Handler的函数在所有线程中均可使用,利用内部类实现;
在子线程中,是没有消息队列的,需要自己创建,在主线程中,系统会帮我们创建一个消息队列;
Looper负责消息的传递
这样子线程就可以用post将Runnbale()加入到消息队列中去,这样主线程都可以向子线程发送消息了,如:按钮(点击后发送消息)
class LooperThread extends Thread {
public Handler mHandler;
public void run() {
Looper.prepare();//Looper准备
mHandler = new Handler() {
public void handleMessage(Message msg) {
// process incoming messages here
}
};
Looper.loop();//让Looper动起来
}
}
原则是:先建立Handler,再发送消息,或者post();
Handler的函数在所有线程中均可使用,利用内部类实现;
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-07-11
展开全部
现在C#也能写安卓应用? 不都是JAVA的吗
追问
mono for android
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询