我正在审查一个学生的程序,该程序在 Activity 中有这样的代码:
Toast toast = Toast.makeText(this, "Hello", Toast.LENGTH_LONG);
toast.show();
toast.setText("Goodbye");
这显示了文本“再见”,这最初是一个惊喜。我假设发生这种情况是因为对 show() 的调用仅将显示 Toast 实例的请求排队并在实际显示之前返回。对 setText("Goodbye") 的调用会在实例显示之前对其进行变异。
两个问题:
- 我的解释正确吗?
- 在存在 Toast 突变的情况下确保串行语义的最佳方法是什么?