У меня нижеприведенный код работает нормально, чтобы найти и прочитать запись в базе данных Room через идентификатор.Android Studio требуется добавить блок try / catch, который я включил ниже.
Два вопроса: Могу ли я оставить пустым раздел if {} в onPostExecute (), если нет исключения?
Как мне показать AlertDialog здесь без утечки контекста и без использования хака через WeakReference?
// AsyncTask for reading an existing CardView from the database.
private static class ReadAsyncTask extends AsyncTask<Integer, Void, Quickcard> {
private QuickcardDao asyncTaskDao;
Exception e;
ReadAsyncTask(QuickcardDao dao) {
asyncTaskDao = dao;
}
@Override
public Quickcard doInBackground(final Integer... params) {
Quickcard result;
try {
result = asyncTaskDao.readCardForUpdate(params[0]);
} catch (Exception e) {
this.e = e;
result = null;
}
return result;
}
@Override
protected void onPostExecute(Quickcard quickcard) {
if (e == null) {
// *** Okay to leave this blank? If not, what should go here?
}
else {
// *** How do I show an AlertDialog here with leaking context?
}
}
}