java-为什么在运行异常后Android App自动重启?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-为什么在运行异常后Android App自动重启?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3517字,纯文字阅读大概需要6分钟。
内容图文
![java-为什么在运行异常后Android App自动重启?](/upload/InfoBanner/zyjiaocheng/664/bce31dad3e3e460baf5e5bb71b5eef2d.jpg)
我的应用程序在两个5.0的android系统中运行.
在我的开发中,我有一个未捕获的RuntimeException
遇到例外时,我的应用程序将自动重启,
我不知道为什么我的应用程序会自动重启?即使我调用System.exit(1)
这是带有RuntimException的日志
E/AndroidRuntime(23905): FATAL EXCEPTION: main
E/AndroidRuntime(23905): Process: com.oosmart.mainapp, PID: 23905
E/AndroidRuntime(23905): android.database.sqlite.SQLiteException: no such table: devices (code 1): , while compiling: drop table devices
E/AndroidRuntime(23905): at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
E/AndroidRuntime(23905): at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
E/AndroidRuntime(23905): at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
E/AndroidRuntime(23905): at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
E/AndroidRuntime(23905): at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
E/AndroidRuntime(23905): at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
E/AndroidRuntime(23905): at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1674)
E/AndroidRuntime(23905): at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1655)
E/AndroidRuntime(23905): at com.oosmart.mainaplication.db.DBOperation.execute(DBOperation.java:81)
E/AndroidRuntime(23905): at com.oosmart.mainaplication.db.DevicesDB.dropTable(DevicesDB.java:154)
E/AndroidRuntime(23905): at com.oosmart.mainaplication.db.DBHelper.DropTable(DBHelper.java:30)
E/AndroidRuntime(23905): at com.oosmart.mainaplication.fragment.UserCenterFragment.onExitClick(UserCenterFragment.java:128)
E/AndroidRuntime(23905): at com.oosmart.mainaplication.fragment.UserCenterFragment$$ViewBinder$6.doClick(UserCenterFragment$$ViewBinder.java:74)
E/AndroidRuntime(23905): at butterknife.internal.DebouncingOnClickListener.onClick(DebouncingOnClickListener.java:22)
E/AndroidRuntime(23905): at android.view.View.performClick(View.java:4806)
E/AndroidRuntime(23905): at android.view.View$PerformClick.run(View.java:19952)
E/AndroidRuntime(23905): at android.os.Handler.handleCallback(Handler.java:739)
E/AndroidRuntime(23905): at android.os.Handler.dispatchMessage(Handler.java:95)
E/AndroidRuntime(23905): at android.os.Looper.loop(Looper.java:135)
E/AndroidRuntime(23905): at android.app.ActivityThread.main(ActivityThread.java:5313)
E/AndroidRuntime(23905): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(23905): at java.lang.reflect.Method.invoke(Method.java:372)
E/AndroidRuntime(23905): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1116)
E/AndroidRuntime(23905): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:809)
这是System.exit的日志
I/AndroidRuntime(20479): VM exiting with result code 1, cleanup skipped.
I/AndroidRuntime(23172): VM exiting with result code 1, cleanup skipped.
I/Process (24461): java.lang.RuntimeException
我在运行时使用的grep日志
更新:
即使我调用android.os.Process.killProcess(android.os.Process.myPid());
该应用程序仍然使用新的pid重新启动.
我不知道为什么我不能完全退出代码.
解决方法:
可能是因为您没有完成上一个活动,并且当新活动创建异常时,它关闭了当前活动并打开了上一个活动,并且Runtime Exception崩溃使您的应用程序崩溃,并且您试图删除甚至不存在的表,甚至系统.exit()不会退出您的应用程序.最佳实践是在使用任何复杂的编码时用户尝试捕获.
如果我错了有人纠正我
内容总结
以上是互联网集市为您收集整理的java-为什么在运行异常后Android App自动重启?全部内容,希望文章能够帮你解决java-为什么在运行异常后Android App自动重启?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。