我开始学习如何在Android上创建应用。我已经掌握了一些关于Java的知识,现在我正在尝试一些活动事件。
我知道如何使用onCreate
或onCreateOptionsMenu
,现在我正在测试onStop
:
@Override
public void onStop(){
//a function that simply creates and return an AlertDialog.Builder object
displayPopup("Event", "Stopped", "OK").show();
}
我认为这样可行,因为在编译时没有错误。但是当我尝试退出应用程序时,我希望会出现一个弹出对话框,但应用程序只是崩溃了。事实证明,我需要一个额外的线来使它工作:
super.onStop();
它没有做任何事情(至少我看不到任何改变)而且它有点无用,但如果没有这一行,应用程序就会一直崩溃。
任何帮助都会很棒,谢谢。
答案 0 :(得分:4)
它调用父onStop()
类中的Activity
方法。当您查看源代码时,您会发现它会执行一些内部管理。
protected void onStop() {
if (DEBUG_LIFECYCLE) Slog.v(TAG, "onStop " + this);
if (mActionBar != null) mActionBar.setShowHideAnimationEnabled(false);
getApplication().dispatchActivityStopped(this);
mTranslucentCallback = null;
mCalled = true;
}
答案 1 :(得分:2)
您的自定义活动扩展了活动类型。 onStop()
方法是超类活动的一部分。如果您不调用super.onStop()
,则永远不会调用Activity类的实现,只会执行您的实现。这意味着崩溃,因为Activity类中的onStop()
方法执行必须调用的清理。
onStop()
上的Android参考:http://developer.android.com/reference/android/app/Activity.html#onStop()
答案 2 :(得分:0)
你的类是一个活动子类(扩展Activity),巫婆意味着你必须调用活动母类的超级方法,以获取有关super.onstop()细节的更多信息,你可以查看源代码