首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android应用程序在调用finish后崩溃

Android应用程序在调用finish后崩溃
EN

Stack Overflow用户
提问于 2017-09-22 21:43:41
回答 2查看 1.8K关注 0票数 1

根据我的理解,这是我期望不会发生的事情。

在我的应用程序中,我执行一个AsyncTask,它可能需要不到2-3秒。在这个AsyncTask中,我有runOnUiThread(),它更新的UI控件值很少。

这是很好的工作,直到,如果我做了一个点击退出按钮,做一个活动的完成()。

我得到了findViewById返回null的Null指针异常。我可以在更新之前添加null检查,但是考虑到UI屏幕和AsyncTasks使用的数量,我最终会得到大量的检查。

为什么在调用finish()之后UI线程仍在执行中?

这个案子的最佳解决方案是什么?只有当AsyncTask完成和调用finish()之间的时间差存在完全一致时,才会出现问题。

致以敬意,

哈尔沙

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-22 22:04:24

AsyncTask在后台运行,直到它正在执行的作业完成为止,因此对当前活动调用"finish“不会扼杀它。添加空检查将是一个麻烦,所以我要做的是在调用asyncTask之前取消finish()

代码语言:javascript
复制
if (asyncTaskInstatnce != null && !a.isCancelled())
     a.cancel(true);
票数 1
EN

Stack Overflow用户

发布于 2017-09-22 23:23:41

您可以使用onPostExecute方法的AysncTask更新UI。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46373620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档