Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让我的Android应用程序正确终止?_Android_Terminate - Fatal编程技术网

如何让我的Android应用程序正确终止?

如何让我的Android应用程序正确终止?,android,terminate,Android,Terminate,我有一个Android应用程序,可以将数据写入SD卡。当我通过USB电缆连接时,我希望能够从我的电脑上看到这些数据。不幸的是,当我退出应用程序时,它仍然在后台,并且一些系统缓冲区没有正确刷新(或者至少我认为这就是发生的情况)。因此,除非手动强制应用程序停止,否则无法正确查看数据。然后,数据在PC上变得清晰可见,就像变魔术一样 我想让程序在退出主活动时自动终止,或者更好的是,我想找到一些方法刷新系统缓冲区。有人有什么想法吗?是否关闭文件?最好是在onPause()中 在中检查活动生命周期 编辑:

我有一个Android应用程序,可以将数据写入SD卡。当我通过USB电缆连接时,我希望能够从我的电脑上看到这些数据。不幸的是,当我退出应用程序时,它仍然在后台,并且一些系统缓冲区没有正确刷新(或者至少我认为这就是发生的情况)。因此,除非手动强制应用程序停止,否则无法正确查看数据。然后,数据在PC上变得清晰可见,就像变魔术一样


我想让程序在退出主活动时自动终止,或者更好的是,我想找到一些方法刷新系统缓冲区。有人有什么想法吗?

是否关闭文件?最好是在onPause()中

在中检查活动生命周期

编辑:

如果您确实觉得需要终止流程,可以使用

android.os.Process.killProcess(android.os.Process.myPid());


我真的怀疑这是一个文件刷新问题,您可能没有将数据正确写入SD卡。让应用程序“退出”非常简单,只需在其onStop或onPause中调用finish(),具体取决于您希望它何时退出


没有代码,我们无法帮助

当然,我关闭了我的文件/数据库,并且我已经无数次阅读了关于活动生命周期的内容。这正是我的问题。我不希望我的应用程序留在后台,因为有些数据没有提交到SD卡。无论如何,谢谢。你可以明确地完成你的活动。但是你对你的过程在记忆中的停留时间没有任何影响。除非你终止了自己的进程,但我认为这是没有必要的。活动确实结束了。我已经检查过它是否通过了onDestroy方法。但这还不够。应用程序仍在后台,我的一些数据没有写入SD卡。我看不到当您的进程终止时系统会做什么——除了关闭打开的文件、套接字等。但正如您所说,您做到了。我不这么认为——这是一个相当标准的Linux系统,除了一些关于设备驱动程序的更改,电源管理和内存管理。不过,它确实有一个读/写缓存,这不会受到进程终止的影响。但请看我上面的评论。我认为这一定是某种缓冲区问题,因为一旦我强制应用程序停止,丢失的数据就会出现。编写数据的代码非常简单,但相当长。我可以创建一个更简单的应用程序来说明我的观点,但我希望有人能给出一个答案。我应该指出,丢失的数据可以被其他Android应用程序看到,平面文件和SQLite数据库也会出现同样的问题。我不清楚的是:(如何)当SD卡通过USB挂载时,您是否会写入SD卡?SD卡上有一个SQLite数据库,我使用ODBC驱动程序写入该数据库。该应用程序还生成许多小的测试文件。在我停止应用程序之前,数据库中的某些行和某些文本文件在PC上不可见。我想当我发布此信息时,我的手机出现了问题。当我重置它时,问题解决了。
System.exit(n)