0

我编写了一个简单的数独解决应用程序,如下所示:LINK

当您按下按钮时,将显示一个小键盘,让您选择分配给该按钮的数字。典型的用例可能是用户打开应用程序,然后分配构成他们想要解决的数独难题的所有数字,然后按下解决按钮。

根据我对 Android 的理解,这将创建一个由许多主要活动和键盘活动组成的任务(键盘是作为对话框的活动)。每次分配一个新号码时,当小键盘出现时,您将在主号码上方放置一个小键盘活动。然后,当您选择了一个数字并且键盘消失时,您将在键盘活动之上放置另一个主要活动。

这就是你得到很多你并不真正需要的活动的结果吗?我误解了这件事吗?

我应该使用启动模式和意图标志来一遍又一遍地重复使用相同的主要活动和键盘,还是只使用标准版本就可以了?

4

1 回答 1

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);

您可以在 Docs中找到所有可用的 HereFlags

此外,当你完成它并转到下一个时,调用finish()说键盘将它从堆栈中取出。Activity

谷歌导航演示

于 2013-08-16T00:24:36.557 回答