我是FragmentActivity, Fragment和ViewPager的新手。
我使用FragmentActivity与2片段。
每个片段都使用相同的数据,我将从AsyncTask中的web服务调用中获得。
现在我不想为每个片段调用两次Web服务。
我的想法是在FragmentActivity中使用AsyncTask从Web服务中获取数据;然后通知FragmentAdapter已经接收到数据。因此,适配器应该相应地更新两个Fragment的视图。
但我被如何实现这一目标所困扰。如果有人给我指路或举一些这样的例子,那就太好了。谢谢。
在后台启动一个任务,当收到结果时,像这样通知fragment
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();
}
}