提问人:Umar 提问时间:10/8/2023 更新时间:10/8/2023 访问量:48
startActivity new Intent 是否有限制?点击 50 次后,您将无法打开新活动
Is there a limit for startActivity new Intent? After 50 clicks you can't open a new activity
问:
我正在制作不同级别的游戏,每个级别都在新活动中。当用户在游戏过程中单击“开始活动”新意向 50 次时,它不会打开新 Activity。例如,级别 1 = 活动 1,因此用户将无法打开级别 51 = 活动 51。如果您在活动之间移动 50 次,您将无法移动第 51 次。我也在另一个应用程序上检查了这个错误,你不能在活动之间切换超过 50 次。知道为什么会有限制以及我如何解决它。帮助将不胜感激。
startActivity(new Intent(this,Level50.class));
答:
1赞
404NotFound
10/8/2023
#1
从理论上讲,没有这样的限制。但这可能是因为堆栈中有太多活动。您可以尝试使用这些标志从堆栈中删除以前的 Activity。当您开发游戏时,我假设一旦用户完成游戏,您就不需要进入上一级。
Intent intent = new Intent(this, ActivityB.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
评论
0赞
Umar
10/9/2023
非常感谢。成功了。没有它,问题就是真实的。
0赞
Davit Hovhannisyan
10/8/2023
#2
下面是一个使用片段的简化示例:
public class GameActivity extends AppCompatActivity {
private int currentLevel = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game);
loadLevel(currentLevel);
}
private void loadLevel(int level) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, LevelFragment.newInstance(level));
transaction.commit();
}
public void moveToNextLevel() {
currentLevel++;
if (currentLevel <= 50) {
loadLevel(currentLevel);
} else {
}
}
}
评论