1

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

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

日志猫:

10-17 18:32:17.109:E/AndroidRuntime(5477):引起:java.lang.NullPointerException 10-17 18:32:17.109:E/AndroidRuntime(5477):在 com.google.android.maps.MapActivity .onDestroy(MapActivity.java:500) 10-17 18:32:17.109: E/AndroidRuntime(5477): 在 com.appsmith.mapit.MainActivity.onDestroy(MainActivity.java:177) 10-17 18:32:17.109 : E/AndroidRuntime(5477): 在 android.app.ActivityThread.performDestroyActivity(ActivityThread.java:2663) 10-17 18:32:17.109: E/AndroidRuntime(5477): ... 11 更多

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

任何解决此问题的建议将不胜感激。

编辑:明白了!我实现了一个 onPause(),它与我的 onDestroy() 具有相同的信息(这是我在应用程序不使用时保持 GPS 不处于活动状态的解决方案)。注释掉 onPause() 会让一切再次变得愉快。谢谢您的帮助!

4

1 回答 1

1

你不需要调用finish(); 在 onDestroy() 中,finish() 正如文档所说:“当你的活动完成并应该关闭时调用它。”,所以如果你在 onDestroy() 那么你的活动已经完成

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

于 2012-10-18T00:52:50.957 回答