【发布时间】:2015-05-02 18:07:02
【问题描述】:
有一个similar question,其中大多数回答建议使用getActivity() 以获得片段的上下文,但是如果片段被分离,如何获取对活动/上下文的引用(在这种情况下,@ 987654324@返回null)?
我的情况是我的片段启动了一个 AsyncTask,它在完成时调用我片段的 onSuccess() 方法。但是我的片段的onSuccess() 方法需要上下文才能显示 Toast 消息或访问共享首选项。那么有没有可靠的获取上下文的方法呢?
我正在考虑的一种方法是将上下文对象传递给我的 AsyncTask 构造函数,然后将其传递回我前面提到的onSuccess() 回调方法——但这会导致内存泄漏吗?
(注意 - 有一个答案 here 显示了如何检索当前活动,但同样,它需要一个有效的上下文。)
【问题讨论】:
-
你试过 getApplicationContext() 了吗?
-
onattach 方法首先被调用,因为你将获得活动引用,存储它并使用它。
标签: android android-fragments android-asynctask android-context