活动GameActivity
:首次打开应用程序时打开的页面。
活动GameMain
:游戏的游戏活动。
活动GameWin
:转到下一个GameActivity
(最终将显示“您赢了!”屏幕,其中包含统计信息和相关信息)
应用程序启动
这被触发:
button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
Intent intent = new Intent(context, GameMain.class);
intent.putExtra("level",1);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
}
});
GameMain
现在已加载。字符circle
现在位于屏幕的左侧。当
circle
到达屏幕右侧时,游戏循环中的if语句现在变为true: if ((circle.x+width/2 > end.startx) && (circle.x-width/2 < end.stopx) && (circle.y+circle.size==end.starty-width/2)) {
layout.removeAllViews();
Intent intent = new Intent(context, GameWin.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("level",level);
finish();
startActivity(intent);
}
GameWin
屏幕执行以下操作: Log.v(TAG,"Goint to level: "+(level+1));
Intent intent = new Intent(context, GameMain.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("level",(level+1));
startActivity(intent);
finish();
有时它可以工作,并且将级别数据设为2并转到
GameMain
,这比我通过级别屏幕并直接转到level2的速度要慢得多。有时它可以工作,并且将级别数据设为2并转到GameMain
,并一遍又一遍地重新加载页面。有时,我的手机会重新启动。如果我有能力完成第2级,则可以这样做。如果级别3可以工作,刷新或重新启动手机,则速度甚至会更慢。
如果我随时单击“主页”,它将转到我的主屏幕,但是应用程序将使用上一级将自身打开回到
GameMain
(返回步骤6或7)。我究竟做错了什么?
API级别8,LG P500(2.3.3)
事实证明这不是问题。游戏循环仍在后台运行。
最佳答案
您可以尝试以下两种方法:
在GameMain中,确保在startActivity(intent)
之前先呼叫finish()
将noHistory添加到清单中的活动并设置为true
编辑您应该开始将日志记录语句添加到函数和回调中。这将显示运行情况,并为您提供耗时的时间信息。例:
onCreate(){
Log.i(TAG, "onCreate++");
super.onCreate();
//other code here
Log.i(TAG, "onCreate--");
}