У меня есть приложение, которое имеет Asynctask
для веб-запросов Api, и есть много запросов для многих вкладок.Результат Asynctask появляется после закрытия активности и приводит к сбою
Когда пользователь прокручивает очень быстро между вкладками, многие запросят обеды! но когда пользователь закрывает эту активность, некоторые из которых в фоновом режиме приводят к сбою приложений.
Я попытался это: в моем doinBackground я всегда проверяю, если фрагмент isAdded()
@Override
protected Void doInBackground(Void... Params) {
Bundle bundle = getArguments();
String url = ServiceHandler.serverEnum.serverRootPath + ServiceHandler.serverEnum.Me.toString();
if(isAdded()){
response = StaticUtils.generateReguest(mContext, url, headerParams, bodyParams, URLParams, null, ServiceHandler.serviceMethod.get.toString());
}
return null;
}
Я также сделать это, когда AsyncTask бежит от деятельности: OnStop деятельности я отменил RAN Asyctask то onPostExecute
из него проверьте, не отменены ли некоторые элементы интерфейса. но проблема заключается в том, что я получаю сбой в doInBackground
.
это линия, что авария происходит в создании реагировать StaticUtils.generateReguest
:
if (status != 200 && status != 401 && status != 404 && status != 0) {
Intent intent = new Intent(context, ErrorActivity.class); //error point to this line
intent.putExtra(ErrorActivity.REASON, "SERVER");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
(context).startActivity(intent);
}
и это журнал кошки, которые приводят к строке выше:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference
Я думаю, что это может из-за контекста. потому что, когда я сгенерирую запрос, я передаю контекст Activity в Requestgenerator и некоторое время, как вы видите в коде, это приводит к появлению ошибки. когда пользователь закрывает контекст активности, изменился так, чтобы генератор запросов не мог открыть `ErrorActivity. что лучше всего справиться с этим? Я googled и не мог найти хорошее решение?
вы должны сделать то же самое в onPause активности. – Shuddh
авария случается на делатьOnBackground! – Kenji
Можете ли вы дать мне журналы – Shuddh