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

时间:2010-02-12 16:00:54

标签: android android-emulator

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

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

raiseToast(Activity sourceActivity) {

  Toast.makeText(sourceActivity, demo, Toast.LENGTH_LONG).show();
}

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

MyManager manager=new MyManager();
manager.raiseToast(MyActivity.this);

它工作正常。

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

谢谢Idan。

1 个答案:

答案 0 :(得分:3)

您可以尝试在活动上传递getApplicationContext()的应用程序上下文。 为什么你有这个MyManager对象?你可以从活动中举起烤面包,而不是在单独的课堂上。将你的方法raiseToast()移动到活动体,然后调用它。

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