2015年7月29日 星期三

[Android] Handler should be set to static to avoid memory leak

腦弱, 每次都忘記怎麼寫, 還要去開以前的code出來, 紀錄在這比較快 XD


private final MyHandler myhandler = new MyHandler(this);

.....

public static class MyHandler extends Handler {
    private final WeakReference<MainActivity> mActivity;

    public MyHandler(MainActivity activity) {
        mActivity = new WeakReference<>(activity);
    }

    @Override    public void handleMessage(Message msg) {
        final MainActivity activity = mActivity.get();
        if (activity != null) {
            // TODO: implement your code here

        }
    }
}

沒有留言:

張貼留言