2017-05-06 44 views
0

我想创建一个包含BottomNavigationView的MainActivity的静态实例,但这总是给出警告。我知道将android上下文类置于静态字段会导致内存泄漏,但只有在使用BottomNavigationView时才会收到此警告。我不明白为什么这个警告没有BottomNavigationView没有显示,什么是最好的方法来消除此警告?创建包含BottomNavigationView的MainActivity的静态实例

警告消息:

不要放置在静态字段的Android上下文类(静态 参照MainActivity具有字段bottomNav指向 BottomNavigationView);这是一个内存泄漏(和也打破 即时运行)

我的代码:

public class MainActivity extends AppCompatActivity { 
    BottomNavigationView bottomNav; 
    ImageView rootIndicator; 
    ... 
    ... 
} 

public class Utils { 
    public static MainActivity activity; 
    ... 
    ... 
} 

回答

0

如果你发现自己在你想保存的静态引用的活动的情况就像你现在一样,然后重新考虑你的整个设计,因为你永远不应该这样做,它只会在将来造成更多的问题。

如果您告诉我们您要做什么,我们可能会以更好的方式帮助您。

+0

感谢您的建议,但我找不到任何其他方式来解决这个问题。实际上,我创建了一个静态方法来获取使用** PackageManager **类的已安装应用程序的一些信息,并使用** PackageManager **类活动上下文是必需的,所以我通过将MainActivity上下文保存为静态引用来传递它。如果有另一种方式来处理这个问题,请让我知道。 –