Activity GameActivity
:首次打开应用程序时打开的页面。
Activity GameMain
:游戏的播放 Activity 。
Activity 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();
有时它会工作,然后转到
GameMain
,关卡数据为 2,只是比我通过关卡屏幕直接进入 level2 慢得多。有时它会工作,并转到GameMain
,级别数据为 2,然后一遍又一遍地重新加载页面。有时,我的手机会重新启动。如果我有能力完成第 2 级,我就会这样做。如果它工作、刷新或重启手机,级别 3 甚至更慢。
如果我在任何时候点击“主页”,它会转到我的主屏幕,但应用程序自行打开回到
GameMain
最后一关(回到第 6 步或第 7 步)。
我做错了什么?
API 级别 8,LG P500 (2.3.3)
事实证明这不是问题所在。游戏循环仍在后台运行。
最佳答案
这里有两件事可以尝试:
- 在 GameMain 中,确保在
finish()
之前调用startActivity(intent)
- 添加noHistory到 list 中的 Activity 并设置为 true
编辑 您应该开始将日志记录语句添加到您的函数和回调中。这将向您显示正在运行的内容,并为您提供有关运行时间的计时信息。示例:
onCreate(){
Log.i(TAG, "onCreate++");
super.onCreate();
//other code here
Log.i(TAG, "onCreate--");
}
关于android - 更改 Activity : Reloading Activities, 速度变慢 - 这是为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11288163/