线程 结束的时候 发一个handlemessage给主线程就可以了
解决方案 »
- 关于apk在桌面显示的问题,请帮帮忙
- 如何更新Activity中的数据
- android 开发中如何实现模拟按键?
- 有搞Janus DRM的吗
- 急!急!急!求大神们指点如果在android平台下开启jbox2d的debugDraw功能
- android中的TabHost?
- 关于android BLE 从模式(peripheral role)-android L
- actionbar 点击图片 切换
- 安卓开发问题 no resource found that matches the given name
- 哪些类型的安卓程序比较容易用来个人练习和模仿又比较典型的?
- 关于cocos2d-x 游戏移植到android平台出现黑屏的问题
- 新手求助~利用组合控件自定义View并动态加载
public void runAsync(final XXXListener listener){
new Thread(){
public void run(){
// do something
listener.onXXX();
// do something
}
}.start();
}
// 在Main线程调用
runAsync(new XXXListener(){
public void onXXX(){
// 这里就是事件通知了
// 不过这里的代码是在子线程里直接掉的,如果想直接操作UI是不行的,需要配合handler之类的试用。所以说着只是一种设计,不是android特性
}
});2 消息。比如用handler
private static handler = new Handler();
public void runAsync(){
new Thread(){
public void run(){
// do something
handler.sendMessage(xxxxxx);
// do something
}
}.start();
}// 在Main线程调用
handler = new Handler(){
protected void handlerMessage(Message msg){
// 这里就是从子线程来的消息回调了,而且会在main线程里执行
}}
runAsync();3 广播
广播类似于消息通知,查下代码看怎么写吧。
以上代码全屏感觉写,写错了也正常,莫怪。就为表达那么个意思。
new GetRefreshDataTask().execute();
}private class GetMoreDataTask extends AsyncTask<Void,Void,ArrayList>{ @Override
protected ArrayList doInBackground(Void... params) {
// TODO Auto-generated method stub
try {
Thread.sleep(4000);
} catch (InterruptedException e) {
}
return items;
} @Override
protected void onPostExecute(ArrayList result) {
getmoreList();
adapter.notifyDataSetChanged(); // Call onRefreshComplete when the list has been refreshed.
onLoad(); super.onPostExecute(result);
}
}
2. 如果自己new一个Thread,可以加个handler,来处理新开线程后消息的返回.