首页 > 解决方案 > 在静态类中获取活动

问题描述

我有一个扩展的类,Asynctask 我想访问我的活动或它的上下文。每次尝试时,我都无法从静态上下文中引用无法添加窗口 - 令牌 null 不适用于应用程序

ps:我没有使用片段,它只是活动。

标签: androidstatic

解决方案


在异步任务中传递上下文时应该小心;你可以制造泄漏。如果您在声明任务时创建对它的弱引用并在需要使用它时通过调用 .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();
    }

}

推荐阅读