gpt4 book ai didi

android - Activity 关闭后会导致异步任务结果并导致崩溃

转载 作者:行者123 更新时间:2023-12-03 17:12:16 24 4
gpt4 key购买 nike

我有一个具有用于Web Api请求的Asynctask的应用程序,并且有很多选项卡请求。

当用户在选项卡之间快速滚动时,许多请求午餐!但是当用户关闭 Activity 时,某些正在进行的后台操作会导致应用崩溃。

我尝试了这个:
在我的doinBackground中,我始终检查是否是否存在碎片iFyreed()

 @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从Activity运行时,我也这样做:
Activity 的onStop我取消了已运行的Asyctask,然后检查它的 onPostExecute是否未取消做一些UI任务。但是问题是我在 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,并且如您在代码中看到的那样,它导致显示错误 Activity 。当用户关闭 Activity 上下文时,请求生成器无法打开ʻErrorActivity。什么是处理此问题的最佳实践?我用谷歌搜索,找不到一个好的解决方案?

最佳答案

我认为上下文为空。
为什么不对上下文进行空检查。

      if(context != null){
Intent intent = new Intent(context, ErrorActivity.class);
intent.putExtra(ErrorActivity.REASON, "SERVER");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
(context).startActivity(intent);
}

关于android - Activity 关闭后会导致异步任务结果并导致崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41714885/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com