我是FragmentActivity,Fragment和ViewPager的新手。
我正在使用带有2个片段的FragmentActivity。
每个片段都使用与AsyncTask中的Web服务调用相同的数据。
现在我不想为每个片段调用两次Web服务。
相反,我的想法是使用FragmentActivity中的AsyncTask从Web服务获取数据。然后通知FragmentAdapter已收到数据。因此,Adapter应该更新Fragment的视图。
但我仍然坚持如何实现这一目标。如果有人建议我的方式或这样的例子,那将是很好的。感谢。
答案 0 :(得分: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();
}
}