1

厄介な問題が 1 つあります。アクティビティ レイアウトで静的に定義されたフラグメントがあります。

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >
    <fragment
        android:id="@+id/tab_fragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        class="com.trilobitsol.one.TabFragmentNew" >
    </fragment>
</LinearLayout>

アクティビティの onCreate でサービスにバインドし、onServiceConnected でサービスを受け取ります。

private ServiceConnection serviceConn = new ServiceConnection() {
        public void onServiceConnected(ComponentName name, IBinder binder) {
            service = ((AlarmService.AlarmBinder)binder).getService();
        }

        @Override
        public void onServiceDisconnected(ComponentName name) {
            service = null;
        };
    };

ただし、フラグメントの onCreateView には、アクティビティで取得したサービスに依存するコードがあり、サービスが実際に受信される前にフラグメントの onCreateView が呼び出されるという問題があります。この厄介な問題を克服するにはどうすればよいですか?

前もって感謝します。ヤルド

解決済み: @Karakuri のアドバイスのおかげで、TabFragmentNew.onCreateView() でタブ フラグメント (onCreateView() はサービス依存コード) を作成する代わりに、onSeviceConnected(...) で呼び出す別のメソッドに移動しました。

4

1 に答える 1