我有一个烦人的问题。我在活动布局中静态定义了一个片段:
<?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 中,我有依赖于 Activity 中的服务的代码,问题是片段的 onCreateView 在实际接收到服务之前被调用。如何克服这个恼人的问题?
提前致谢。哈多
已解决: 感谢@Karakuri 的建议,而不是在 TabFragmentNew.onCreateView() 中创建选项卡片段(其中 onCreateView() 是服务相关代码),我已将其移至我在 onSeviceConnected(...) 中调用的单独方法。