毕竟 GCM 和 TabHost 似乎玩得很好。问题的根源原来不是,而是选项菜单。如果有人正在使用 Google 提供的 DemoActivity 库设置 GCM,请在撕掉头发之前检查这段讨厌的代码:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.options_register:
GCMRegistrar.register(this, SENDER_ID);
return true;
case R.id.options_unregister:
GCMRegistrar.unregister(this);
return true;
case R.id.options_clear:
mDisplay.setText(null);
return true;
case R.id.options_exit:
finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
我不够聪明,无法弄清楚为什么这是有问题的,但它不喜欢 TabHost 或使用 Fragments 创建的 Tabs(我都尝试过)。