gpt4 book ai didi

java - 通过运行 AsyncTask 处理方向变化

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

<分区>

用例:

用户启动将加载验证码的应用程序。用户填写验证码并尝试下载一些信息。

问题:

如果用户在下载时旋转设备,Activity 将被销毁。在执行结束时,AsyncTask 尝试更新已销毁的 Activity结果 是一个“ View 未附加到窗口管理器”。

“错误”的解决方案:

我可以用 android:configChanges="orientation|keyboardHidden|screenSize" 来掩盖这个问题,但是布局不会更新为横向。

我在问什么:

是否可以更改方向并更改传递给 AsyncTask 的 Context 的“引用”?

answer建议检查对话框是否不为空,但这不是我要找的。

Here他建议使用 Wea​​kReference(here 关于如何使用它的一个很好的 fragment )但我不明白它是否是我正在寻找的。

更明确地说,这是我在 onPostExecute 中所做的:

@Override
protected void onPostExecute(Auto result) {
progress.dismiss();
new DownloaderCaptcha(context).execute("");
((EditText)context.findViewById(R.id.editTextCaptcha)).setText("");
context.findViewById(R.id.progrBar).setVisibility(View.VISIBLE);
context.findViewById(R.id.captcha).setVisibility(View.INVISIBLE);

if(result != null) {
Storage.storeHistory(context, result.getTarga().getValue());

Intent i = new Intent(context, MenuActivity.class);
i.putExtra("result", result);
context.startActivity(i);
} else {
ErrorDialog.show(context, error);
}
}

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