使用 super.onDestroy 时 Android MapActivity 崩溃

标签 android nullpointerexception android-mapview mapactivity ondestroy

我有一个到目前为止非常稳定的应用程序,我决定向它添加一个 MapView。如果有所不同,则 MapView 位于 Horizo​​ntalScrollView 中。我将主要 Activity 转换为扩展 MapActivity 并添加了 isRouteDisplayed() 函数。我可以编译并运行它,滚动查看我的 MapView 是否正确加载。

我的问题是 super.onDestroy() 何时被调用。由于某种原因,程序崩溃了。

日志:

10-17 18:32:17.109: E/AndroidRuntime(5477): Caused by: java.lang.NullPointerException 10-17 18:32:17.109: E/AndroidRuntime(5477): at com.google.android.maps.MapActivity.onDestroy(MapActivity.java:500) 10-17 18:32:17.109: E/AndroidRuntime(5477): at com.appsmith.mapit.MainActivity.onDestroy(MainActivity.java:177) 10-17 18:32:17.109: E/AndroidRuntime(5477): at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:2663) 10-17 18:32:17.109: E/AndroidRuntime(5477): ... 11 more

 @Override
 public void onDestroy()
 {
        internalSave();
        writeOutLookupTable("Unit");
        gpsManager.removeUpdates(myListener);
        super.onDestroy(); //MainActivity.java Line 177
        finish();
 }

如果有任何解决此问题的建议,我们将不胜感激。

编辑:知道了!我实现了一个 onPause() ,它与我的 onDestroy() 具有相同的信息(这是我的解决方案,可以在应用程序未使用时防止 GPS 处于 Activity 状态)。注释掉 onPause() 使一切再次愉快。感谢您的帮助!

最佳答案

你不需要调用 finish();在 onDestroy()、finish() 内部,如文档所述:“当您的 Activity 完成并且应该关闭时调用它。”,因此如果您在 onDestroy() 中,那么您的 Activity 已经完成

还有 super.onDestroy();通常放在 onDestroy() 的顶部。

关于使用 super.onDestroy 时 Android MapActivity 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12945550/

相关文章:

java - 帮助进行代码布局

Android:处理后台线程的问题

java - 单击抽屉导航的项目不会打开 fragment

java 。方法返回 Null。我必须生成什么异常?

java - 什么是NullPointerException,我该如何解决?

java - 将多个字符串的不同子字符串添加到 Treeset

android - list 的权限在 Android 6 中不起作用

java - GoogleSignInApi 登录未成功并出现 RuntimeException

android - 在 OSMDroid 中更改用户代理

android - 我如何使用包含 MapView 并在其下方显示 AdMob View 的 TabHost 包装?