在onPostExecute中调用main活动(在活动被销毁或处于停止状态之后)

时间:2015-08-08 17:04:16

标签: android android-asynctask

在我的应用程序中,我有一个AsyncTask,它将一些数据上传到服务器,并使用一个接口" FetchCompleteListener"与调用活动进行交互。我写的。

调用活动实现了一个FetchCompleteListener并将自己的实例传递给AsyncTask。

给定的AsyncTask在onPostExecute()中调用FetchCOmpleetListener的onFetchCoMplete

我的问题是 - 在以下情况中会发生什么:

  1. 当给定活动处于停止状态时
  2. 当给定的活动完成/销毁?
  3. 这是内存泄漏的情况吗?当我尝试在onPostExecute()中调用onFetchComplete时,我的应用程序会崩溃吗?

1 个答案:

答案 0 :(得分:1)

您应始终将后台任务与您的ui分离。您可以执行以下操作之一:

  1. 你的ui将在onResume内注册一个广播接收器(当然在onPause中取消注册),后台任务将发送一个广播,当它被激活时将被ui捕获

  2. 您可以将结果排列在某些服务类中(或最适合您的服务类),当相应的ui变为活动状态时,它将从队列中获取结果(基于某些TAG)

  3. 您可以使用Ottogreenrobot

  4. 之类的EventBus