1

GCM と Tabhost の両方を必要とするプロジェクトがありますが、同じ MainActivity クラスで両方を宣言すると、アプリケーションがクラッシュし、アプリケーションが Gingerbread と下位互換性を持つ必要があるため、フラグメントを使用できません。誰かが回避策を知っていますか?

編集: ハニカム以前のバージョンでフラグメント化されたタブを実装するためのこの素晴らしいチュートリアルを見つけましたが、まだ同じ問題が発生しています。 http://thepseudocoder.wordpress.com/2011/10/04/android-tabs-the-fragment-way/

タブに干渉しないように GCM を実装するにはどうすればよいですか? 私は何が欠けていますか?

4

1 に答える 1

0

結局、GCM と TabHost はうまく機能するようです。問題の根源はどちらでもなく、オプション メニューであることが判明しました。Google が提供する DemoActivity Library を使用して 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);
   }
}    

なぜこれが問題なのかを理解するほど賢くはありませんが、Fragments で作成された TabHost または Tabs は好きではありません (両方を試しました)。

于 2013-06-21T19:11:09.613 に答える