厄介な問題が 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(...) で呼び出す別のメソッドに移動しました。