以编程方式退出应用程

时间:2012-02-28 12:51:08

标签: android dialog

我一直在寻找答案但我找不到合适的答案。问题是我在正常活动之上有一个对话主题活动。我想强制用户阅读并单击“确定”主题活动,然后将其转移到另一个对话框主题活动以获得一些其他问题或无法进入应用程序。因此,我想在退出时退出应用程序,而不仅仅是完成将显示我的应用程序内容的主题活动。怎么可能?

3 个答案:

答案 0 :(得分:2)

finish()将为您完美地完成工作;)

但使Dialog无法取消..

编辑(问题说明澄清后): 正如其他人所说,StartActivityForResult可以使用其他技巧。 由于您设计应用程序的方式( DialogActivity1-> DialogActivity2 ),在AndroidManifest文件中添加以下行可能有助于您进行所有特殊的对话框查看活动:

android:noHistory="true"或在启动DialogActivityN之前为intent Intent.FLAG_ACTIVITY_NO_HISTORY设置标志。

这两行(来自清单或代码)将使这种行为不会留在Android堆栈上,所以当你的MainActivity得到结果时,它将是最后一次DialogActivity的结果,并且取决于收到的结果,你可以{{1}或继续执行MainActivity ..

当你开始这样的活动时,没有必要调用finish()来销毁它们,你只需要开始新的活动,它们就会从堆栈中消失。当然,在你的情况下,最后一个DialogActivity你将从StartActivityForResult()开始,正如我在上一段中所解释的,MainActivity将根据收到的结果做一些事情。

然而让用户在开始的应用程序中多次浏览这些对话框,这不是我认为好的做法,它可以让你的用户放弃并去寻找一些不那么烦人的应用程序。 (不要弄错,重新考虑概念只是我的建议)

希望你能解决它;)干杯

答案 1 :(得分:2)

如果您使用startActivityForResult()开始对话活动,则可以从对话框中发回结果RESULT_CANCELED,并在收到此信息后(在您的主要活动中),您致电finish()

答案 2 :(得分:1)

如果您了解ActivityforResult,那么对您来说更容易,首先您需要使用方法startActivityforResult启动对话活动...然后当对话框活动通过后退按钮关闭时,您必须通过设置结果关闭它。在OnactivityResult中,如果setResult不是相应的,则start活动的方法必须检测相同并关闭相同的方法。希望你明白这一点。