我正在尝试使用Handler类修复内存泄漏,并且我正在使用blog中的参考代码,其中在自定义Handler类中使用了对活动的弱引用,而在handleMessage方法中使用了可运行代码。
private static class MyHandler1 extends Handler {
private final WeakReference<MainActivity> mActivity;
public MyHandler1(MainActivity) {
mActivity = new WeakReference<MainActivity>(activity);
}
@Override
public void handleMessage(Message msg) {
ProgressActivity activity = mActivity.get();
if (activity != null) {
activity.textView.setText(activity.getString(R.string.text_handler_2));
Intent i = new Intent(activity.getApplicationContext(), NewActivity.class);
activity.getApplicationContext().startActivity(i);
}
}
}
static final Runnable sRunnable = new Runnable() {
@Override
public void run() {
}
};
当我在onCreate()方法中使用handler.postDelayed(sRunnable, 6000);
时,handleMessage内的代码未执行。我的可运行代码是否应该在静态Runnable对象中,这样可以避免内存泄漏?另外,如果我有不同的处理程序对象执行不同的可运行对象代码,那么如何在单个Handler类中的handleMessage中管理它们?