2011-07-19 8 views
1

私はビューをクリック可能にする再利用可能な関数を作成することを考えています - この例ではRelativeLayoutAOがバックグラウンドです。onClickListenerを静的に設定すると、メモリリーク?

final RelativeLayout rlAO = (RelativeLayout) findViewById(R.id.RelativeLayoutAO); 
    Utility.setOnClickFinish(rlAO); 

そしてユーティリティクラスで:

public class Utility { 
    public static void setOnClickFinish(View view) { 
     view.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View clickedView) { 
      ((Activity) clickedView.getContext()).finish(); 
     } 
    }); 
} 
} 

これは、メモリリークが発生しませんか?

答えて

2

いいえ、これはメモリリークを引き起こすものではありません。

あなたの質問のタイトルに基づいて、ここでは静的キーワードの意味を誤解している可能性があります。あなたは何も "静的に"設定していません。 setOnClickFinish()が静的としてマークされているということは、単純にクラスメソッドであることを意味します。

+0

ああ、ありがとう!私はタイトルが誤解を招くと思います。私は、ユーティリティのsetOnClickFinishは静的で、インスタンスメソッドで動作することができますが、onClickは静的ではありません。 – albnok

関連する問題