2014-03-04 78 views
0

代码很有用。不过,我从活动生命周期的角度看到一些奇怪的东西。 onCreate代码基本上将适配器设置为相关的GridView,并从数据库中提取项目并填充所述GridView。每个项目都可以由用户轻敲,将项目的“playerId”推送到HubActivity。下面onCreate在从Activity导航离开时再次被调用

是我的onCreate代码:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    Const.err("##> Running PlayerSearchActivity.onCreate"); 
    setContentView(R.layout.activity_playersearch); 
    this.mPlayerSearchBtn=(Button) findViewById(R.id.playerSearchButton); 
    this.mPlayerSearchText=(TextView) findViewById(R.id.playerSearchText); 
    this.mPlayerSearchGridView=(GridView) findViewById(R.id.psearch_playersearchgrid); 
    this.mSavedPlayersGridView=(GridView) findViewById(R.id.psearch_savedplayersgrid); 
    mPlayerSearchBtn.setOnClickListener(this); 

    this.savedPlayersAdapter = new PlayerGridAdapter(this); 
    mSavedPlayersGridView.setAdapter(savedPlayersAdapter); 
    mSavedPlayersGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> arg0, View view, int position,long arg3) { 
      Intent intent = new Intent(getApplicationContext(), HubActivity.class); 
      intent.putExtra(Keys._PLAYERID,savedPlayersAdapter.getItemPlayerId(position)); 
      startActivity(intent); 
     } 
    }); 

    Const.err("<## Completed PlayerSearchActivity.onCreate"); 

} 

我很好奇每个方法是如何被调用,所以我施加围绕函数(Const.err)一些记录。结果很奇怪:

03-04 00:29:50.942: ##> Running PlayerSearchActivity.onCreate 
03-04 00:29:50.982: <## Completed PlayerSearchActivity.onCreate 
03-04 00:29:50.982: ##> Running PlayerSearchActivity.onResume 
03-04 00:29:51.058: <## Completed PlayerSearchActivity.onResume 

---Clicked item--- 

03-04 00:29:54.718: ##> Running PlayerSearchActivity.onCreate 
03-04 00:29:54.730: <## Completed HubActivity.onCreate 
.. 

首先,为什么单击某个项目后会调用onCreate?此外,我希望看到一个“Completed PlayerSearchActivity.onCreate”消息,但这从来没有发生过。

+0

您是否获得相同的日志

Const.err("##> Running PlayerSearchActivity.onCreate"); 

代替每次运行应用程序?我可以看到,刚刚开始你的PlayerSearchActivity,你有“Completed PlayerSearchActivity.onCreate”。另外,由于消息是异步的,因此您可能无法按正确的顺序获取它们。尝试把断点看看控制。也有断点日志应该按照正确的顺序。 – Sushil

+0

@Sushil - 是的,我每次运行它时都会得到完全相同的日志。是的,我期待在日志底部显示一条消息'Completed PlayerSearchActivity.onComplete',但它从来没有发生过!显然有些事情是奇怪的,因为我们有2个“正在运行”消息,只有1个“已完成”消息。我会研究断点,看看这是否有帮助。 – fantom

回答

0

我想这是一个复制粘贴错误,请检查您的HubActivity.onCreate(),如果没有意外粘贴

Const.err("##> Running HubActivity.onCreate"); 
+0

不幸的是,这不是问题。我多次检查过这个(之前犯过这个错误)。奇怪的小问题,我跑到这里.. – fantom

+0

你可以尝试添加Const.err(“###内容设置在PlayerSearchActivity.onCreate”);刚刚在setContentView(R.layout.activity_playersearch)之后;并看看它是否打印出来? – huyc

相关问题