Ich habe eine Anwendung, die eine Asynctask
für Web-API-Anfragen hat und es gibt viele Anfrage für viele Registerkarten.Asynctask Ergebnis kommen, nachdem activty geschlossen ist und zum Absturz
Wenn Benutzer sehr schnell zwischen den Tabs scrollt viele Anfragen Mittagessen! Wenn der Benutzer die Aktivität jedoch schließt, führen einige Vorgänge im Hintergrund zu Abstürzen von Apps.
ich das versucht: in meinem doinBackground ich immer überprüfen, ob Fragment 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;
}
ich dies auch tun, wenn AsyncTask von Aktivität läuft: OnStop Aktivitäts abgesagt ich das RAN Asyctask dann onPostExecute
davon überprüfen Sie, ob nicht abgebrochen werden einige UI-Sachen. aber Problem ist, dass ich in doInBackground
Crash bekomme.
das ist die Linie, den Absturz in StaticUtils.generateReguest
bei der Schaffung reagieren passiert:
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);
}
und das ist log Katze, die über die Linie führen:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference
Ich denke, es kann wegen des Kontextes. Wenn ich eine Anfrage erstelle, übergebe ich den Aktivitätskontext an Requestgenerator, und irgendwann, wie Sie im Code sehen, führt dies zu einer Fehleraktivität. Wenn der Benutzer geschlossen wird, ändert sich der Aktivitätskontext so, dass der Request-Generator 'ErrorActivity' nicht öffnen kann. Was ist die beste Vorgehensweise, um damit umzugehen? Ich habe gegoogelt und konnte keine gute Lösung finden?
sollten Sie das gleiche auch in onPause der Aktivität tun. – Shuddh
Absturz passiert auf doingBackground! – Kenji
können Sie mir die Protokolle geben – Shuddh