我做了一些搜索,发现人们最终得到了和我一样的错误,但是在一个完全不同的背景下:(
所以,我正试图让我的应用程序在发生关键事件时优雅地退出。它是一个使用相机的Android应用程序,我希望应用程序在显示吐司文本后退出,因此用户不会随机崩溃。 (是的,理论上我不应该在if语句中结束,因为我需要在清单中使用相机硬件,但我喜欢尽可能地处理错误)
这是清单文件的一小部分:
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature
android:name="android.hardware.camera"
android:required="true" />
这是我的代码:
public class MainActivity extends Activity {
/* member variables... */
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Create an instance of Camera
// I forced this to true for testing because the devices I'm testing
// against won't reach inside the if statement
if (/*!(checkCameraHardware(this) || checkFrontFacingCameraHardware(this))*/ true) {
Toast.makeText(getBaseContext(), "Shutting Down! No Camera Detected!", Toast.LENGTH_SHORT).show();
System.exit(0); // This is the last code it reaches
}
mCamera = getCameraInstance(); // This code isn't reached
正如您所看到的,我希望代码能够进行干杯,然后关闭,但它会被卡在空白(黑色)屏幕中(在System.exit(0)
之后或之后),重复以下错误而在Log Cat中。
Tag: Trace, Text: error opening trace file: No such file or directory (2)
我错过了什么吗?我可以不在OnCreate()函数中退出或吐司吗?
答案 0 :(得分:1)
请勿使用System.exit(0)
从https://groups.google.com/forum/#!topic/android-developers/G_D3pKnGLt0
引用Romain Guy用户没有,系统会自动处理。那是 活动生命周期(特别是onPause / onStop / onDestroy)是什么 对于。无论你做什么,都不要放
"quit"
或"exit"
应用。它与Android的应用程序模型无关。这也是 与核心应用程序的工作方式相反。
关于同样的@
有详细的答案Is quitting an application frowned upon?
您还可以阅读相关的主题@
https://groups.google.com/forum/#!topic/android-developers/G_D3pKnGLt0