如何禁用 on创建操作 何时更改方向?

2022-09-05 00:23:50

如何禁用“在将设备从纵向转向时创建”事件?因为当应用程序启动时,它将从Internet获取大部分数据,并且每次用户转动其设备时下载此数据都将很糟糕。


答案 1

在清单写入的活动标记中

android:configChanges=“orientation|screenSize”

例:

<activity android:name=".MainActivity"
            android:configChanges="orientation|screenSize">

答案 2

在创建时使用标志签入。在初始化/声明时使flag=true在清单文件中添加android:configChanges=“orientation”

在 java 文件中,重写 onConfigurationChanged 方法,并将标志设置为 false。

这样做之后,您的onCreate将被调用,但if中提到的代码将不会被调用。将代码移动到 if 条件中。

尝试使用这个。

static boolean flag = true;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    if(flag)
        Log.d("ONCREATE", "flag is true");
}    
@Override
public void onConfigurationChanged(Configuration newConfig) {
    // TODO Auto-generated method stub
    Log.d("ONCONFIGCHANGE", "CALLED" );
    flag = false;
    super.onConfigurationChanged(newConfig);
}

推荐