android - 在静态类中获取活动
问题描述
我有一个扩展的类,Asynctask
我想访问我的活动或它的上下文。每次尝试时,我都无法从静态上下文中引用或无法添加窗口 - 令牌 null 不适用于应用程序。
ps:我没有使用片段,它只是活动。
解决方案
在异步任务中传递上下文时应该小心;你可以制造泄漏。如果您在声明任务时创建对它的弱引用并在需要使用它时通过调用 .get() 来获取该引用,则您可以在异步任务中与您的活动进行交互。
private static class YourAsyncTask extends AsyncTask<String, String, String> {
Private WeakReference<YourActivity> weakReference;
YourAsyncTask(YourActivity context) {
weakReference = new WeakReference<>(context);
}
…
@Override
Protected void onPostExecute(String string) {
YourActivity activity = weakReference.get();
}
}