如何通过编程方式终止Android NDK(本地活动)应用程序?

9

当应用程序请求终止时,我尝试从代码中调用ANativeActivity_finish(state->activity)。这种方法可以实现停止应用程序的功能,但是我的应用程序无法重新启动,并在LogCat中显示以下内容:

W/ActivityManager(  238): Duplicate finish request for HistoryRecord

当用户点击后退按钮时,一切似乎都正常工作,但是我需要能够从我的应用程序内部发出退出命令。有什么建议吗?

1个回答

6
那就这样做吧。我不知道你具体是怎么做的,但我猜你在代码结尾处调用该函数,并从 android_main 返回。
你需要调用 ANativeActivity_finish() 并一直运行事件循环直到 android_app->destroyRequested。在事件处理程序中,你会找到适当的 APP_CMD_STOPAPP_CMD_DESTROY
采用这种方式,现在我没有问题了。以前我用 exit(0),但那并不正确。

你的 android_main 中有一个事件循环,你只是从中跳出来,让 android_main 运行到结束吗? - Viktor Sehr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接