完成活动后使用上下文引用

时间:2015-04-29 03:46:20

标签: android android-activity android-context

我在页面中有一个完整的按钮,当用户点击按钮时,它将启动一个异步任务并将活动上下文传递给它,然后完成活动以关闭活动视图。

如果活动完成但后台任务仍然需要使用传入的上下文引用会发生什么?它会有任何顾虑吗?或者有这种情况的替代/更好的方法。

任何建议都将不胜感激!

1 个答案:

答案 0 :(得分:2)

  1. 首先,在这种情况下,你最好去服务而不是asynctask。在您的情况下,服务应该在任务完成后自行停止。
  2. 即使你去asynctask,尝试使用你可以从活动上下文获得的应用程序上下文,如下所示:

    activity_context.getApplicationContext();
    

    即使活动结束,应用程序上下文也会存在,同时也会避免内存泄漏。

  3. 如果你想让即使活动完成也能安全地运行asynctask,那么尽量不要更新postExecute(..)方法中的任何UI,因为它将在已经完成的活动的UI上运行,导致异常。尝试只在doInBackground(...)中执行任何在不同线程上运行的后台任务。
  4. 希望这能回答你的问题。