Truyền this vào hàm như thế nào?

SACALO

New Member
3/5/17
2
0
0
26

Bị lỗi ngay chỗ new GetKN(MainActivity).execute();
Ở ngoài new GetKN(this).execute(); được nhưng vào trong hàm sự kiện thì dùng this không được. Em là newbie không biết giải quyết sao mong mọi người giúp đỡ!
 

longlv.th

Active Member
9/8/13
109
68
28
31
Trong android KHÔNG để context là static sẽ bị leak memory.
Bạn KHÔNG nên làm theo cách chỉ của JackV
Ở ngoài new GetKN(this).execute(); được
Cái này được vì nó nằm trong method của MainActivity thì truyền vào this thì this này chính là MainActivity
còn
nhưng vào trong hàm sự kiện thì dùng this không được
button1.setOnclickListener(new OnClickListener(){
onClick(View v){
//new GetKN(MainActivity)....// nhu the nay la sai, khi bạn truyền this vào đây, this này nghĩa là của OnClickListener chứ k phải của MainActivity nên nó báo lỗi là đúng nhé

//Phai truyền như thế này
//Ngoài ra trong AsynTask bạn nên dùng WeakReference để warp Context lại nhé, trong Asyn rất dễ bị leak Context (MainActivity)
new GetKN(MainActivity.this)...;
}
})
 
  • Like
Reactions: JackV