gpt4 book ai didi

android - 对android示例代码感到困惑

转载 作者:行者123 更新时间:2023-11-29 21:33:43 26 4
gpt4 key购买 nike

我正在查看 android 开发者网站上的一些代码,并对此处显示的示例有一个快速的问题 - http://developer.android.com/guide/components/fragments.html

特别是,我正在查看这段代码 -

public static class DetailsActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

if (getResources().getConfiguration().orientation
== Configuration.ORIENTATION_LANDSCAPE) {
// If the screen is now in landscape mode, we can show the
// dialog in-line with the list so we don't need this activity.
finish();
return;
}

if (savedInstanceState == null) {
// During initial setup, plug in the details fragment.
DetailsFragment details = new DetailsFragment();
details.setArguments(getIntent().getExtras());
getFragmentManager().beginTransaction().add(android.R.id.content, details).commit();
}
}

第二个if语句的重点是什么-

if (savedInstanceState == null) {

我找不到这个 if 语句不成立的任何情况。我通过添加 else 语句并在其中设置断点来测试此代码。无论我尝试什么,我都无法到达那个断点。那么,为什么还要费心使用 if 语句呢?为什么不把它们都放在一起呢?

最佳答案

在某些情况下,您的 Activity 会被 Android 操作系统停止。在这些情况下,您有机会通过调用 [onSaveInstanceState]( http://developer.android.com/reference/android/app/Activity.html#onSaveInstanceState(android.os.Bundle) 来保存 Activity 的状态。如果在此之后,您的 Activity 再次启动,它将被传递给 Bundle 您创建的以便您可以正确地恢复状态。

关于android - 对android示例代码感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18857281/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com