3

我是 FragmentActivity、Fragment 和 ViewPager 的新手。

我正在使用带有 2 个片段的 FragmentActivity。

每个片段都使用我将从 AsyncTask 中的 Web 服务调用中获得的相同数据。

现在我不想为每个片段调用 Web 服务两次。

相反,我的想法是使用 FragmentActivity 中的 AsyncTask 从 Web 服务获取数据,然后通知 FragmentAdapter 已收到数据。因此,Adapter 应该相应地更新两个 Fragment 的视图。

但我坚持如何实现这一目标。如果有人建议我这样的方式或一些例子,那就太好了。谢谢。

4

1 回答 1

1

在后台启动一个任务,当收到结果时通知这样的片段

package com.example.myapplication2;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v7.app.ActionBarActivity;

public class MainActivity3 extends ActionBarActivity {


    private FragmentManager fragManager;
    private Fragment fragOne,fragTwo;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);

    fragManager = getSupportFragmentManager();
    if((fragOne=fragManager.findFragmentById(R.id.frag_one))==null){
        fragOne = new FragOne();
        fragManager.beginTransaction()
                .add(R.id.container, fragOne )
                .commit();
    }
    if((fragTwo=fragManager.findFragmentById(R.id.frag_two))==null){
        fragTwo = new FragTwo();
        fragManager.beginTransaction()
                .add(R.id.container, fragTwo)
                .commit();
    }

    startTaskInBackground();

    }


    @Override
    public void onTaskComplete() {
    fragOne.onDataReceived();
    fragTwo.onDataReceived();
    }


}
于 2013-11-18T13:43:42.537 回答