2012-09-03 26 views
0

我有一个应用程序,它基本上是一个主要活动和查看寻呼机片段的启动程序,我只注意到如果我从我的应用程序启动应用程序,并且我的应用程序被杀死时,上创建片段函数get's先调用我的创建主要活动函数。碎片onCreate在应用程序进程被杀后

这最终会崩溃我的应用程序,因为我得到所有使用主要活动的应用程序的列表,然后每个分页器视图片段将从主列表中获取一个子列表。 该应用运行良好时,第一次执行,因为android首先运行的主要活动的创建,然后在创建的片段

那么我该如何解决这个问题?有没有办法先调用onCreate主要活动函数?还是有更好的办法做到这一点?

的应用程序,让非法参数异常,当我尝试建立短名单,并由于主列表只填充是主要的活动,当我回到我的应用程序的主列表是空让我异常

代码:

`

public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 

     View view = inflater.inflate(R.layout.grid, null); 

     GridView gridview = (GridView) view.findViewById(R.id.gridview); 

     int starterPosition; 

     starterPosition = 16 * position; 
     int enderPosition = starterPosition + 16; 

     if (enderPosition > appsList.size()) { 
      enderPosition = appsList.size(); 
     } 


     ArrayList<App> shorterList = new ArrayList<App>(appsList.subList(
       starterPosition, enderPosition)); 

     final AppLauncherAdapter grid = new AppLauncherAdapter(ctx, shorterList); 

     gridview.setAdapter(grid); 

     gridview.setSelector(R.color.trans); 


     return gridview; 
    } 

`

回答

2

有一个名为onActivityCreated,你应该使用方法专门为此目的。 onActivityCreated将始终在ActivityonCreate方法后调用。

+0

所以我应该在我的主要活动上使用onActivityCreated并调用这个函数处理片段?这将避免片段的onCreate会首先被调用? – Steve

+0

你的'Fragment'可能不应该和Activity相互作用太多,但是如果它的确如此,你应该在'onActivityCreated'之后执行。 –

+0

我恐怕我不理解你看到所有需要处理的代码是onCreateView的函数,我想我不能从那里移动它,所以我怎么能使用onActivityCreated?对不起,因为小白,但我有点不知所措 – Steve

相关问题