gpt4 book ai didi

android - 锁定方向直到 Asynctask 完成

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:09:18 26 4
gpt4 key购买 nike

只想阻止方向,直到所有数据都加载到我的 View 中。所以我想到了下面的代码,但它不起作用。

private class task extends AsyncTask<String, Void, String> {

protected String doInBackground(String... params) {
...
}

protected void onPostExecute(String result) {
...
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
}

protected void onPreExecute() {
...
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
}
}

当我运行 SENSOR 的这两行时和 NOSENSOR我的屏幕自动变成水平,不明白为什么。这可能正在发生?

编辑:
我输入以下几行来检查当前方向,结果如下:
   protected void onPreExecute() {
if (getResources().getConfiguration().orientation==Configuration.ORIENTATION_LANDSCAPE) {
Log.e("TAG","LANDSCAPE");
}else{
Log.e("TAG","PORTRAIT");
}
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
}

Logcat 的结果:
LANDSCAPE

但是,如果我删除这两行( SetRequestedOrientation ),我会在 logcat 中得到这个:
PORTRAIT

最佳答案

只需更换 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
让我知道发生了什么..

入门级

 protected void onPreExecute() {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
}

在退出层
 protected void onPostExecute(String result) {
...
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
}

更新:

有线行为(在您的情况下)但是,您可以使用任何方式获取当前方向,
int currentOrientation = getResources().getConfiguration().orientation; 

现在在 onPreExecute() 中设置此方向..

喜欢,
protected void onPreExecute() {
...
int currentOrientation = getResources().getConfiguration().orientation;
if (currentOrientation == Configuration.ORIENTATION_LANDSCAPE) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
}
else {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
}
}

简单的.. :-)

关于android - 锁定方向直到 Asynctask 完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14704774/

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