handler1
是一个泄漏。
我想将handler1
代码转换为handler2
代码。可以吗?
这两个代码有什么区别?
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// leaks!
Handler handler1 = new Handler()
{
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
Log.e("LOG", "Hello~1");
}
};
Handler handler2 = new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(Message msg) {
Log.e("LOG", "Hello~2");
return false;
}
});
handler1.postDelayed(new Runnable() {
@Override
public void run() { }
}, 60000);
handler2.postDelayed(new Runnable() {
@Override
public void run() { }
}, 60000);
finish();
}
}
handler1
导致内存泄漏。 - samabcdehandler1
导致了内存泄漏,请添加“HOW”以查找内存泄漏(例如,在调用多次onCreate
方法后是否抛出OutOfMemoryError
?)。 - samabcdehandler1
添加警告信息。 - samabcde