我以前让我的应用程序只处理活动,现在正在转换为片段以改进 UI。
以前,我Activity启动了一个AsyncTask并传入自身以用作Context某些方法需要它的时候(不是 UI 操作,而是对共享首选项和内容提供者的调用)。我现在了解到,如果Activity被销毁并收集垃圾,这种方法可能会导致不良结果,但它确实编译并运行良好。
我开始这个改变是因为我想让我的加载屏幕在应用程序暂停和停止时表现得更好。我意识到人们不喜欢在 Android 中加载屏幕,但对我来说这是必需的,因为我有一个需要 20 秒左右的操作,并且需要在应用程序运行之前完成。
因此,使用本指南,我开始改进我的应用程序。
简而言之,该指南将 移动AsyncTask到一个Fragment没有附加 UI 的,带有一个单独Fragment的用于显示加载屏幕的ProgressBar. 这意味着产生 的片段AsyncTask没有上下文,这意味着我不能将一个传递给AsyncTask.
正如我之前所说,我有AsyncTask需要Context对象的操作,那么我可以从哪里得到它呢?AsyncTask我应该在开始之前将这些数据传递给吗?