Java 如何决定在Android Studio中什么应该是静态的

Java 如何决定在Android Studio中什么应该是静态的,java,android,static,Java,Android,Static,所以,我有几个警告: 1.不要将Android上下文类放在静态字段中;这是内存泄漏 2.此“AsyncTask”类应为静态类,否则可能会发生泄漏 如果我从字段中删除static,那么从静态声明的AsyncTask调用的静态函数本身就会失败。 如果我将另一个AsyncTask设置为静态,那么我将跟踪其他函数和字段设置为静态(或者至少在还原之前我开始设置为静态) 我确实在另一个答案()中看到了这一点,因为AsyncTask应该是短期的,所以不必担心它们是静态的 我想我理解静态和非静态之间的区别,但是

所以,我有几个警告: 1.不要将Android上下文类放在静态字段中;这是内存泄漏 2.此“AsyncTask”类应为静态类,否则可能会发生泄漏

如果我从字段中删除static,那么从静态声明的AsyncTask调用的静态函数本身就会失败。 如果我将另一个AsyncTask设置为静态,那么我将跟踪其他函数和字段设置为静态(或者至少在还原之前我开始设置为静态)

我确实在另一个答案()中看到了这一点,因为AsyncTask应该是短期的,所以不必担心它们是静态的


我想我理解静态和非静态之间的区别,但是我应该如何决定应该/不应该是什么?我是否错过了一些关于如何与AsyncTak交互和使用变量的基本知识?

请注意,
AsyncTask
已被弃用。一般来说,唯一应该是静态的非常量对象是设计上需要在流程生命周期内生存的对象。因此,例如,从磁盘或网络加载的数据的内存缓存通常是
静态的
,或者由本身是
静态的
管理。在现代应用程序开发中,库通常为我们处理
静态
数据(例如,使用图像缓存滑动,使用Dagger/Koin进行依赖项反转)。请注意,
AsyncTask
已被弃用。一般来说,唯一应该是静态的非常量对象是设计上需要在流程生命周期内生存的对象。因此,例如,从磁盘或网络加载的数据的内存缓存通常是
静态的
,或者由本身是
静态的
管理。在现代应用程序开发中,库通常为我们处理
静态
数据(例如,使用图像缓存滑动,使用Dagger/Koin进行依赖项反转)。