我写了一个简单的数独求解应用程序,如下所示:LINK
按下按钮时,会出现一个小键盘,可让您选择与该按钮对应的号码。典型的用例可能是用户打开应用程序然后分配构成他们想要解决的数独谜题的所有数字,然后按下求解按钮。
根据我对Android的理解,这将创建一个由许多主要和键盘活动组成的任务(键盘是一个活动作为对话框)。每次分配新号码时,当键盘出现时,您将在键盘活动的顶部放置键盘活动。然后,当您选择了一个数字并且键盘消失后,您将在键盘活动的顶部放置另一个主要活动。
这是如何解决的,你得到了很多你真正不需要的活动?我误解了这件事吗?
我是否应该使用启动模式和意图标记一遍又一遍地重复使用相同的主要活动和键盘,或者只使用标准版本是否可以?
答案 0 :(得分:0)
根据我对您的问题的理解,您可以使用Intent Flag
FLAG_ACTIVITY_REORDER_TO_FRONT
。如果Activity
已经在堆栈上,那么它将如它所说的那样将它带到堆栈顶部,这样你就没有它的多个实例。
像
这样的东西 Intent i = new Intent(MainActivity.this, KeypadActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(i);
您可以找到所有可用的Flags
Here in the Docs
此外,当您完成操作后调用finish()
键盘Activity
然后转到下一个键盘会将其从堆栈中取出。