【发布时间】:2018-09-12 02:53:32
【问题描述】:
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导致内存泄漏的详细信息 -
对不起。更改为完整代码
-
你认为
handler1造成了内存泄漏,请加上“HOW”你发现内存泄漏的原因(例如OutOfMemoryError多次调用onCreate方法后抛出?)。跨度> -
Android Studio 已经发出警告。
-
请编辑您的问题以将警告消息放入
handler1。
标签: android memory-leaks callback handler