正确地将活动传递给非活动对象

ray*_*man 7 android android-emulator

在我的应用程序中,我有一个非活动对象,它的角色是经理类.很多时候我需要将"源活动"传递给方法作为该管理器类的参数,以便对该活动进行一些操作.

例如,让我们假设我们有MyActivity,它必须做一些吐司.所以我有这个名为MyManager的经理类,我有这个方法

raiseToast(Activity sourceActivity) {

  Toast.makeText(sourceActivity, demo, Toast.LENGTH_LONG).show();
}
Run Code Online (Sandbox Code Playgroud)

从Myactivity类我们以这种方式调用该方法:

MyManager manager=new MyManager();
manager.raiseToast(MyActivity.this);
Run Code Online (Sandbox Code Playgroud)

它工作正常.

我在这里问的是,这是将Activity作为参数传递给非活动对象的正确方法吗?我在真实设备(而不是模拟器)上有内存泄漏,我想知道这是否也会导致任何原因?

谢谢Idan.

Ale*_*voy 4

您可以尝试传递应用程序上下文,即活动上的 getApplicationContext() 。为什么有这个 MyManager 对象?您可以直接从活动中举起吐司,而无需在单独的班级中进行。将您的方法 raiseToast() 移至活动主体并调用它。

编辑:请阅读http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html