我正在努力弄清楚如何处理 Android 中的代码继续执行但我真的不希望它执行的情况。在 Activity 的 onCreate() 中,我需要按顺序执行一些操作,在某些事情先发生之前,我无法让代码继续执行。我知道这就是 Android 和 Java 的行为方式,我正在努力寻找另一种方法来完成我需要的事情。
ShowEula 是我创建的一个类,用于显示带有我的 EULA 的简单对话框。在调用 DBGetOnlineVersionNumber() 之前,我真的需要等到用户同意或不同意 EULA。也许我只是没有走正确的路。无论如何,这是我的代码 fragment :
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String version;
ShowEula();
version = DBGetOnlineVersionNumber();
....
最佳答案
你需要根据 android 使用的事件驱动模型来重新思考问题。
您不能在 onCreate 中等待 UI 事件,因为只有在 onCreate 返回后才能传递 UI 事件。
或许您可以将事物组织为软件状态机。
onCreate 将显示 EULA 并将状态设置为 EULA_SHOWING
接受会将状态推进到 EULA_ACCEPTED 并显示接下来的内容
当然,您可能不想在每次启动时都显示 EULA,而是仅在安装后显示,但您可以使用设置中存储的内容来处理此问题。
关于java - 我需要 Android 和 Java 方面的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4362367/