安卓项目开发中经常会遇到Service和Activity之间通信的情况,Service的数据更新,通知Activity中UI更新。
Service和Activity之间的通信主要有三种:
- bindService();
- 广播Broadcast;
- hander机制
一、利用hander机制实现Service通知Activity更新UI
public class DemoActivity extends AppCompatActivity {
private static final int UPDATE_UI = 111;
public static Handler mDemoHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case UPDATE_UI:
//update UI ...
break;
}
}
};
}
public class DemoService extends Service {
private static final String TAG = DemoService .class.getName();
private void onChanged(){
Message msg = new Message();
msg.what = DemoActivity.UPDATE_UI;
msg.obj = obj;
DemoActivity.mDemoHandler.sendMessage(msg);
}
}