7

私のアプリでは、役割がマネージャークラスである非アクティビティオブジェクトを取得しました。そのアクティビティでいくつかの操作を行うために、「ソースアクティビティ」をそのマネージャクラスのパラメータとしてメソッドに渡す必要があることがよくあります。

たとえば、乾杯をしなければならない MyActivity があるとします。だから私はMyManagerと呼ばれるこのマネージャークラスを持っていて、その中にこのメソッドがあります

raiseToast(Activity sourceActivity) {

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

Myactivity クラスから、この方法でそのメソッドを呼び出します。

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

それは正常に動作します。

私がここで求めているのは、アクティビティをパラメータとして非アクティビティ オブジェクトに渡す適切な方法ですか? (エミュレータではなく) 実際のデバイスでメモリ リークが発生しています。

ありがとうイダン。

4

1 に答える 1

3

アクティビティでgetApplicationContext()であるアプリケーションコンテキストを渡そうとする場合があります。なぜこのMyManagerオブジェクトがあるのですか?別のクラスに入れなくても、アクティビティからトーストを上げることができます。メソッドraiseToast()をアクティビティ本体に移動し、それを呼び出すだけです。

編集:http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.htmlをお読みください

于 2010-02-12T16:23:30.400 に答える