请按照以下步骤操作:
- 创建新的
Firemonkey 移动应用程序
- 在表单中添加
TGeustureManager
组件 在窗体中添加2个
TButton
组件- Button1.Text:“Button1:做某事……”
- Button2.Text:“Button2:退出应用程序...”
双击 Button2 组件并为
OnClick
事件编写以下代码:procedure TForm1.Button2Click(Sender: TObject); begin if MessageDlg('Are you sure you want to Exit?', TMsgDlgType.mtWarning, [TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo], 0) = mrYes then SharedActivity.finish; end;
- 在 Debug模式下运行应用程序。
在设备上,单击按钮 2,然后在弹出的消息中单击是。会出现异常:
为什么会引发此异常?
我认为这与未使用的 TGeustureManager
组件有关。但不,它不是不是:
- 如果打开Delphi xe5自带的
Location
Demo工程。 - 在
Location
标签中添加TButton
组件,如下图所示: - 将与上面相同的代码添加到
OnClick
事件。 - 运行应用程序,点击 Button5,你会得到同样的异常。
这是我应该报告的错误吗?还是我做错了什么?
最佳答案
您可能在其执行流耗尽之前终止正在运行的 Activity ,从而导致问题。很像在表单方法中释放表单....
如果你替换会发生什么:
SharedActivity.finish
与:
uses
FMX.Helpers.Android;
...
CallOnUIThread(procedure begin SharedActivity.finish end);
[凭内存输入,所以可能需要一些调整]
关于android - 类分割错误(11),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19875029/