gpt4 book ai didi

当执行它的 Activity 消失时,Android AsyncTask 返回...

转载 作者:行者123 更新时间:2023-11-29 00:33:36 25 4
gpt4 key购买 nike

场景如下:

  • Activity “A”创建并执行 AsyncTask“T”
  • 由于“T”在后台运行,用户离开“A”
    • 用户如何离开“A”的示例:
      • 按“开始”并启动 Intent 启动 Activity “B”(在我的应用中最常见)
      • 按下“后退”按钮(在我的应用中也很常见)
      • 旋转屏幕,不带 android:configChanges="orientation|keyboardHidden"
      • 等等
  • “T”完成了它的工作并返回,试图调用“A”上的函数“F”来更新“A”的用户界面,但是“A”是……“走了”?!

我怎样才能确保上面的内容不会“爆炸”?

最佳答案

Android 开发中一个非常常见的障碍。当我第一次偶然发现这个问题时,我发现这个问题有很多精彩的讨论,为我提供了启发:

Is AsyncTask really conceptually flawed or am I just missing something?

作为 AsyncTask 的作者,您必须确保它的孤立完成是“安全的”,否则取消/中止。传统的智慧是取消(或者至少通过你自己的滚动机制在逻辑上分离,正如@iagreen 所建议的那样)来自 Activity 的 onPause 或 onDestroy 中的 Task 实例。

Ideal way to cancel an executing AsyncTask

Android 团队成员经常在网络上提供指导,AsyncTask 旨在用于生命周期与其父 Activity 的“预期”生命周期紧密匹配的短期操作,因此如果您发现自己在执行长时间运行的操作并且必须恢复部分操作进度等,您可能想查看显式线程管理或编写服务等代码:

http://developer.android.com/reference/android/app/Service.html

关于当执行它的 Activity 消失时,Android AsyncTask 返回...,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13944359/

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