我正在尝试显式启动一个新Activity的意图,但我希望当前Activity中的一些代码首先完成执行。我已经做了一些研究,并有一些想法来实现这一目标,但我在想“必须有一个更简单的方法来做到这一点”。以下是相关的代码块:
cpuToast(dmg);
if (player_.getStatus() == false)
{
playerWon_ = false;
Intent intent = new Intent(Main.this, Death.class);
startActivity(intent);
}
dmg是一个int。 cpuToast只是让String显示损坏,然后调用show()。 getStatus()返回玩家是否被杀死。如果玩家被杀,我会发布一个新的意图,播放玩家死亡的动画。不幸的是,“死亡”活动正在吐司甚至变得可见之前启动,然后它在死亡活动期间变得可见,我不想要。
有没有人知道在启动死亡活动之前确保Toast完全执行的简单方法?从我发现它看起来我将不得不创建一个“Timer”对象,当我真正想要的只是一个简单的while循环,如“while(Toast.isVisable){}”绑定执行几个秒。
答案 0 :(得分:1)
当您开始祝酒时,您还可以向当前活动发布延迟消息;该延迟消息的runnable可以启动新意图。
答案 1 :(得分:1)
可以在http://developer.android.com/resources/articles/timed-ui-updates.html找到一些用于更新UI以响应定时事件的示例代码。
答案 2 :(得分:0)
它必须是祝酒词吗?
如果您想要使用自定义对话框(删除标题,按钮等),这可能是您最好的选择。在给定时间后使用处理程序关闭对话框并开始新活动。