我有一个带有UI的片段,负责执行短的异步api调用。当异步任务完成时,片段会触发带有结果字符串的Toast消息。
我的问题是,如果用户在没有等待结果的情况下按下“返回”按钮,则应用会因onPostExecute
方法而导致崩溃,而该方法会在片段中触发Toast
+ getString(R.string.whatever)
已经分离,因为活动落后于onDestroy
州。
我可以检查片段是否已分离或使用ProgressDialog
,这是模态的,但我认为展示没有阻塞或任何其他怪癖的祝酒词会很好。有关如何实现它的任何建议?应用程序类中的广播接收器== overkill?
感谢。
UPD 日志:
01-24 12:01:29.626:E / AndroidRuntime(616): java.lang.IllegalStateException:Fragment HandsetSocialNetworksFragment {40612a78}未附加到活动01-24 12:01:29.626:E / AndroidRuntime(616):at android.support.v4.app.Fragment.getResources(Fragment.java:571)01-24 12:01:29.626:E / AndroidRuntime(616):at android.support.v4.app.Fragment.getString(Fragment.java:593)
答案 0 :(得分:2)
在异步调用开始时,从片段中获取活动,并从中获取应用程序上下文。稍后使用它来获取所需的字符串。
或者,您可以在启动异步调用时获取所需的字符串,而不是在必须显示吐司时。