У меня есть этот пример кода ниже, и я хочу убедиться, что не будет памяти.Передача всей операции асинхронной задаче приведет к утечке памяти, если у самой задачи жизненный цикл будет больше, чем у активности.Но если я объявляю слабую ссылку, это означает, что если произойдет ротация, активность будет уничтожена без утечки памяти.Правильные ребята?Должен ли я также установить значение NULL?
Main .java
public class Main extends Activity {
private TextView mMessageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView();
new Background(this /*getBaseContext()*/ ).execute();
}
}
Background.java
public class Background extends AsyncTask<String, Void, String>
{
private WeakReference activity;
public void Background(Activity act)
{
activity = new WeakReference(act);
}
@Override
protected String doInBackground(String... params)
{
}
@Override
protected void onPostExecute(String result)
{
if(activity.get()!=null)
//ToDo
}
}