我有一个到目前为止非常稳定的应用程序,我决定向它添加一个 MapView。如果有所不同,则 MapView 位于 HorizontalScrollView 中。我将主要 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/