我正在实现包含viewpager的android应用程序。 问题在于在背景中杀死应用程序时,当我在 viewpager onPostExecute方法中设置时,线上有空指针。 下面是我的代码。希望得到帮助:)
fragment 类中发生崩溃的代码段protected void onPostExecute(ArrayList result) {
super.onPostExecute(result);
if (this.fragmentWeakRef.get()!= null) {
if (result!= null) {
mHomeCategories = result;
if(mBannerViewPager!= null){
mBannerViewPager.setAdapter(new BannerViewpagerAdapter(
getChildFragmentManager(), getActivity()
. getApplicationContext()));//here app crashes after being killed in background
//and restored
}
mcategoryViewPager.setAdapter(new CategoryViewpagerAdapter(
getChildFragmentManager(), getActivity()
. getApplicationContext(),setFragmentsArray()));
} else {
Toast.makeText(getActivity().getApplicationContext(),
"No Internet Connection", Toast.LENGTH_SHORT)
. show();
}
}
}
}
这是我的适配器public class BannerViewpagerAdapter extends FragmentPagerAdapter {
private SparseArray registeredFragments = new SparseArray();
private static HashMap myHashmap = new HashMap();
static {
myHashmap.put(0, R.drawable.img);
myHashmap.put(1, R.drawable.stopex);
}
public BannerViewpagerAdapter(android.support.v4.app.FragmentManager fm, Context context) {
super(fm);
//TODO Auto-generated constructor stub
}
@Override
public Fragment getItem(int position) {
//TODO Auto-generated method stub
BannerFragment myFragment = null;
myFragment = registeredFragments.get(position);
if(myFragment == null){
myFragment = BannerFragment.newInstance(myHashmap.get(position));
registeredFragments.put(position, myFragment);
}
return myFragment;
}
@Override
public Object instantiateItem(ViewGroup arg0, int arg1) {
//TODO Auto-generated method stub
return super.instantiateItem(arg0, arg1);
}
@Override
public int getCount() {
//TODO Auto-generated method stub
return 2;
}
}